C語言數(shù)據(jù)結構之使用鏈表模擬棧的實例
更新時間:2017年08月28日 09:57:11 作者:愛思考的小鳥
這篇文章主要介紹了C語言數(shù)據(jù)結構之使用鏈表模擬棧的實例的相關資料,需要的朋友可以參考下
C語言數(shù)據(jù)結構之使用鏈表模擬棧的實例
以下是“使用鏈表模擬?!钡暮唵问纠?/p>
1. 用C語言實現(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為空棧,直接跳出,提示出錯信息*/
{
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;
/* 創(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();
}
運行結果如下圖所示:

以上就是數(shù)據(jù)結構鏈表模擬棧的實例,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
C語言創(chuàng)建動態(tài)dll和調用dll(visual studio 2013環(huán)境下)
本篇文章主要介紹了C語言創(chuàng)建動態(tài)dll和調用dll(visual studio 2013環(huán)境下),非常具有實用價值,需要的朋友可以參考下2017-11-11
VC外部符號錯誤_main,_WinMain@16,__beginthreadex解決方法
這篇文章主要介紹了VC外部符號錯誤_main,_WinMain@16,__beginthreadex解決方法,實例分析了比較典型的錯誤及對應的解決方法,需要的朋友可以參考下2015-05-05
在動態(tài)庫和靜態(tài)庫中使用模板(dynamic libraries ,static libraries)
給大家介紹一下在動態(tài)庫(dynamic libraries)和靜態(tài)庫(static libraries)使用模板(template)的用法和解決方案。2017-11-11

