亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中怎么利用鏈表模擬棧

發布時間:2021-07-02 17:36:50 來源:億速云 閱讀:162 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關C語言中怎么利用鏈表模擬棧,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1. 用C語言實現的版本

#include<stdio.h> 
#include<stdlib.h> 
 
typedef char datatype; 
typedef struct node{ 
  datatype data; 
  struct node *next; 
} stack; 
 
stack* m_stack = NULL; 
 
/* 創建鏈表,從表頭插入新元素 */ 
void creat(void); 
/* 使棧s為空 */ 
void MakeNull(); 
/* 判斷棧是否為空 */ 
bool Empty(); 
//取出棧頂元素  
int Top(datatype* value); 
//彈出棧頂元素 
void Pop(); 
//入棧,在頭部插入新元素 
void Push(datatype x); 
 
/* 創建鏈表,從表頭插入新元素 */ 
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為空棧,直接跳出,提示出錯信息*/ 
  { 
    return -1; 
  } 
  else 
  { 
    *value = m_stack->data; 
    return 1; 
  } 
} 
 
//彈出棧頂元素 
void Pop() 
{ 
  stack *p; 
  if (Empty()) /*s為空棧,直接跳出,提示出錯信息*/ 
  { 
    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; 
 
  /* 創建鏈表,從表頭插入新元素 */ 
  creat(); 
 
  if (!Empty()) //判斷棧是否為空 
  { 
    int res = Top(&m_top); 
    if (res == -1) 
    { 
      printf("棧為空,未能獲取棧頂元素\n"); 
    } 
    else 
    { 
      printf("棧頂元素為: %c\n", m_top); 
    } 
    Pop(); 
  } 
  else 
  { 
    printf("棧為空\n"); 
  } 
 
  MakeNull(); 
}

運行結果如下圖所示:

C語言中怎么利用鏈表模擬棧

以上就是C語言中怎么利用鏈表模擬棧,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝城县| 漳州市| 垦利县| 高青县| 扎兰屯市| 塔河县| 中江县| 阿拉善盟| 杭州市| 京山县| 海丰县| 湘潭县| 吴堡县| 西林县| 百色市| 浦城县| 江西省| 凤山市| 华蓥市| 安化县| 兰西县| 金阳县| 永泰县| 宜兰市| 丰顺县| 太保市| 河曲县| 广水市| 长海县| 常德市| 西贡区| 依兰县| 平昌县| 黔西县| 阿瓦提县| 忻州市| 威海市| 柳江县| 紫阳县| 绵阳市| 丹凤县|