最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例

 更新時(shí)間:2017年08月28日 09:57:11   作者:愛思考的小鳥  
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例的相關(guān)資料,需要的朋友可以參考下

C語言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例

以下是“使用鏈表模擬?!钡暮唵问纠?/p>

1. 用C語言實(shí)現(xiàn)的版本

#include<stdio.h> 
#include<stdlib.h> 
 
typedef char datatype; 
typedef struct node{ 
  datatype data; 
  struct node *next; 
} stack; 
 
stack* m_stack = NULL; 
 
/* 創(chuàng)建鏈表,從表頭插入新元素 */ 
void creat(void); 
/* 使棧s為空 */ 
void MakeNull(); 
/* 判斷棧是否為空 */ 
bool Empty(); 
//取出棧頂元素  
int Top(datatype* value); 
//彈出棧頂元素 
void Pop(); 
//入棧,在頭部插入新元素 
void Push(datatype x); 
 
/* 創(chuàng)建鏈表,從表頭插入新元素 */ 
void creat() 
{ 
  char ch; 
 
  printf("請輸入字符序列:\n"); 
  ch = getchar(); 
  while (ch != '\n') 
  { 
    Push(ch); 
    ch = getchar(); 
  } 
} 
 
/* 使棧s為空 */ 
void MakeNull() 
{ 
  stack *p = m_stack; 
  while (p != NULL) 
  { 
    m_stack = m_stack->next; 
    free(p);/*釋放空間*/ 
    p = m_stack; 
  } 
} 
 
/* 判斷棧是否為空 */ 
bool Empty() 
{ 
  return (m_stack == NULL); 
} 
//取出棧頂元素  
int Top(datatype* value) 
{ 
  if (Empty())/*s為空棧,直接跳出,提示出錯(cuò)信息*/ 
  { 
    return -1; 
  } 
  else 
  { 
    *value = m_stack->data; 
    return 1; 
  } 
} 
 
//彈出棧頂元素 
void Pop() 
{ 
  stack *p; 
  if (Empty()) /*s為空棧,直接跳出,提示出錯(cuò)信息*/ 
  { 
    printf("不能彈出,棧為空."); 
  } 
  else 
  { 
    p = m_stack;; 
    m_stack = m_stack->next; 
    free(p);/*釋放棧頂空間*/ 
    printf("彈出成功\n"); 
  } 
} 
 
//入棧,在頭部插入新元素 
void Push( datatype x) 
{ 
  stack *p; 
  p = (stack*)malloc(sizeof(stack)); 
  p->data = x; 
  p->next = m_stack; 
  m_stack = p; 
} 
 
void main() 
{ 
  char m_top; 
 
  /* 創(chuàng)建鏈表,從表頭插入新元素 */ 
  creat(); 
 
  if (!Empty()) //判斷棧是否為空 
  { 
    int res = Top(&m_top); 
    if (res == -1) 
    { 
      printf("棧為空,未能獲取棧頂元素\n"); 
    } 
    else 
    { 
      printf("棧頂元素為: %c\n", m_top); 
    } 
    Pop(); 
  } 
  else 
  { 
    printf("棧為空\n"); 
  } 
 
  MakeNull(); 
} 

運(yùn)行結(jié)果如下圖所示:

以上就是數(shù)據(jù)結(jié)構(gòu)鏈表模擬棧的實(shí)例,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

濉溪县| 伊金霍洛旗| 齐齐哈尔市| 松溪县| 静海县| 甘孜| 泗阳县| 兰坪| 崇左市| 栖霞市| 深水埗区| 德庆县| 阆中市| 湘西| 昌宁县| 秦皇岛市| 托克逊县| 高台县| 内乡县| 中西区| 博湖县| 萝北县| 正宁县| 额尔古纳市| 陵水| 武邑县| 洮南市| 本溪市| 仪征市| 定襄县| 临猗县| 耿马| 张掖市| 岳池县| 淮滨县| 南江县| 白朗县| 诸城市| 固阳县| 文昌市| 永清县|