顺序栈
来源:互联网 发布:网络精准投放 编辑:程序博客网 时间:2024/06/14 17:02
#include<stdio.h>#define maxsize 6 /*顺序栈的容量*/typedef struct{ int data[maxsize]; /*存储栈中数据元素*/ int top; /*标志栈顶位置*/}SeqStk;int InitStack(SeqStk *stk){ stk->top=0; return 1;}int EmptyStack(SeqStk *stk)/*若栈为空,则返回值1,否则返回0.*/{ if(stk->top==0) return 1; else return 0;}int Push(SeqStk *stk,int x)/*若栈未满,元素x进栈stk中,否则提示出错信息。*/{ if(stk->top==maxsize-1) /*判断栈是否满*/ { printf("栈满\n"); return 0; } else { stk->top++; /*栈未满,top值加1.*/ stk->data[stk->top]=x; /*元素x进栈*/ return 1; }}int Pop(SeqStk *stk){ if(EmptyStack(stk)) /*判断是否下溢(栈空)*/ { printf("下溢\n"); return 0; } else /*未下溢,栈顶元素出栈。*/ { stk->top--; /*top值减1*/ return 1; }}int GetTop(SeqStk *stk)/*取栈顶数据元素,栈顶数据元素通过参数返回。*/{ if(EmptyStack(stk)) printf("栈空\n"); /*栈空,返回NULLData.*/ else return stk->data[stk->top]; /*返回栈顶数据元素*/}main(){ SeqStk stk; int i,x; printf("------创建栈------\n"); InitStack(&stk); for(i=1;i<maxsize;i++) { printf("输入第%d个元素:\n",i); scanf("%d",&x); Push(&stk,x); } printf("------输出栈------\n"); while(!EmptyStack(&stk)) { x=GetTop(&stk); Pop(&stk); printf("%d\t",x); }}
阅读全文
0 0
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- 顺序栈
- AVL树c语言实现
- 怎么注册DLL到注册表
- JAVA相关文章(9)
- UML学习(二)——类图
- 5月15日云栖精选夜读:重要通知_|_比特币勒索席卷全球_如何防范?
- 顺序栈
- 看完让你彻底搞懂Websocket原理
- RK3288把debug口从uart2修改为uart3步骤
- 中英文在html中换行与不换行的控制
- 值域线段树 bzoj 4627
- android log丢失(二)使用and4.4log kernel机制
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- Powershell 操作SQL Server
- struts2__Action配置的各项默认值