栈的链式存储及其基本运算
生活随笔
收集整理的這篇文章主要介紹了
栈的链式存储及其基本运算
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <stdio.h>
#include <stdlib.h>
#define M 10typedef struct stnode
{char data;struct stnode *next;
}LinkStack;void InitStack(LinkStack *&ls) //初始化棧
{ls=NULL;
}void PushStack(LinkStack *&ls,char x)//進(jìn)棧
{LinkStack *p;p=(LinkStack *)malloc(sizeof(LinkStack));p->data=x;p->next=ls;ls=p;
}int PopStack(LinkStack *&ls,char &x)//出棧
{LinkStack *p;if(ls==NULL)return 0;else{p=ls;x=p->data;ls=p->next;free(p);return 1;}
}int GetTop(LinkStack *ls,char &x)//取棧頂元素
{if(ls==NULL)return 0;else{x=ls->data;return 1;}
}int StackEmpty(LinkStack *ls)//判斷???{if(ls==NULL)return 1;elsereturn 0;
}int main()
{LinkStack *ls;char e;InitStack(ls);printf("棧%s\n",(StackEmpty(ls)==1?"空":"不空"));printf("a,b,c,d進(jìn)棧\n");PushStack(ls,'a');PushStack(ls,'b');PushStack(ls,'c');PushStack(ls,'d');PushStack(ls,'f');/*int i;for(i=0;i<5;i++){scanf("%c",&e);PushStack(ls,e);}*/printf("棧%s\n",(StackEmpty(ls)==1?"空":"不空"));GetTop(ls,e);printf("棧頂元素:%c\n",e);printf("出棧次序:\n");while(!StackEmpty(ls)){PopStack(ls,e);printf("%c ",e);}printf("\n");return 0;
}
不知為毛注釋掉的那一行不行
轉(zhuǎn)載于:https://www.cnblogs.com/liesun/p/7350350.html
總結(jié)
以上是生活随笔為你收集整理的栈的链式存储及其基本运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 下访问mysql
- 下一篇: 排列、组合问题(递归)