链式栈——在线性表表头操作的一种存储结构还是在线性表表尾操作的一种结构?
来源:互联网 发布:锐捷网络昆明校园招聘 编辑:程序博客网 时间:2024/04/28 22:46
#include<stdio.h>#include<stdlib.h>typedef struct SNode{int data;struct SNode *next;}SNode,*LinkStack;LinkStack top;LinkStack PushStack(LinkStack top,int x) //入栈{LinkStack s;s=(LinkStack)malloc(sizeof(SNode));s->data=x;s->next=top;top=s;return top;}LinkStack PopStack(LinkStack top) //退栈{LinkStack p;if(top!=NULL){p=top;top=top->next;free(p);printf("退栈已完成\n");return top;}else printf("栈是空的,无法退栈!\n"); return 0;}int GetStackTop(LinkStack top) //取栈顶元素{ return top->data; }bool IsEmpty()//bool取值false和true,是0和1的区别,bool只有一个字节,BOOL为int型,bool为布尔型{ return top==NULL ? true:false;}void Print(){ SNode *p; p=top; if(IsEmpty()) { printf("The stack is empty!\n"); return; }while(p) { printf("%d ", p->data); p=p->next; } printf("\n");}void main(){ int x,a,b; char m;do { printf("\n"); printf("###############链栈的基本操作##################\n"); printf("××××××××1.置空栈××××××××××\n"); printf("××××××××2.进栈×××××××××××\n"); printf("××××××××3.退栈×××××××××××\n"); printf("××××××××4.取栈顶元素××××××××\n"); printf("××××××××5.退出程序×××××××××\n"); printf("##############################################\n"); printf("\n请选择一个字符:"); scanf("%c",&m);switch(m){ case '1': top=NULL;printf("\n栈已置空!"); break; case '2': printf("\n请输入要进栈的元素个数是:"); scanf("%d",&a); printf("\n请输入要进栈的%d个元素:",a); for(b=0;b<a;b++) { scanf("%d",&x); top=PushStack(top,x); } printf("进栈已完成!\n"); printf("\n输出栈为:"); Print(); break; case '3': printf("\n操作之前的输出栈为:");Print(); top=PopStack(top); printf("\n操作过后的输出栈为:"); Print(); break; case '4': printf("\n输出栈为:"); Print(); if(top!=NULL) printf("\n栈顶元素是:%d\n",GetStackTop(top)); else printf("\n栈是空的,没有元素!"); break; case '5':break; default: printf("\n输入的字符不对,请重新输入!"); break;} getchar();}while(m!='5'); }
0 0
- 链式栈——在线性表表头操作的一种存储结构还是在线性表表尾操作的一种结构?
- 线性表单链式存储结构的操作
- 线性表的链式存储结构与操作
- 线性表的链式存储结构及操作
- 线性结构--->栈的链式存储实现
- 线性表的链式存储结构(无头节点)
- 线性表的链式存储结构(有头节点)
- 线性表的链式存储结构——单链表
- 线性表顺序存储结构的操作
- 线性表顺序存储结构的操作
- 线性表的链式存储结构
- 链式存储结构的线性表
- 线性表的链式存储结构
- 【数据结构】线性表的链式存储结构
- 线性表的链式存储结构
- 线性表的链式存储结构
- 线性表的链式存储结构
- 线性表的链式存储结构
- 嵌入式入门典藏(转载自 百度知道)
- 1059: [ZJOI2007]矩阵游戏
- POJ3061 Subsequence(二分前缀和法+尺取法)
- U3D RollingBall 3(完结撒花篇)
- 最近点问题
- 链式栈——在线性表表头操作的一种存储结构还是在线性表表尾操作的一种结构?
- 【树链剖分】 FZU 2082 过路费
- 字符串——字典树
- gcd
- Opencv on Ubuntu (from Ubuntu)
- 堆栈的应用
- bzoj1012: [JSOI2008]最大数maxnumber[单调队列+二分]
- 黑马程序员-.NET基础之类和对象
- c# ThreadPoold的使用心得