数据结构 - 顺序栈的基本操作
更新时间:2023-09-25 17:03:01 阅读量: 综合文库 文档下载
- 数据结构推荐度:
- 相关推荐
#include
# define STACK_INIT_SIZE 100 # define STACKINCREMENT 10
typedef struct { int * base; int * top;
int stacksize;//当前栈可使用的最大容量 } SqStack;
void InitStack(SqStack &S)//构造一个空栈 { S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int)); if(!S.base) {cout<<\存储分配失败!!!\ else { S.top=S.base; S.stacksize=STACK_INIT_SIZE; cout<<\构造成功!!!\ } }
void Push(SqStack &S,int e)//插入元素e为栈顶元素 { if(S.top-S.base>=S.stacksize) { S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int)); if(!S.base) cout<<\存储分配失败!!!\ else { S.stacksize+=STACKINCREMENT; S.top=S.base+S.stacksize; } } *S.top++=e; }
void DisplayStack(SqStack &S) //从栈底到栈顶逐次显示栈中的元素 { int *p; p=S.base; if(S.base==S.top) cout<<\当前栈为空栈!!!\
else { cout<<\当前栈内元素为: \ while(p!=S.top) { cout<<*(p)<<\ p++; } cout< int StackLength(SqStack S) //求长度 { int *p; p=S.base; int i=0; while(p!=S.top) {p++;i++;} return i; } void pop(SqStack &S,int &e) //出栈 { if (S.top==S.base) cout<<\操作失败!!!\ else { e=*--S.top; DisplayStack(S); } } void ClearStack(SqStack &S)//清空 { int b; while(S.top!=S.base) b=*--S.top; if(S.top==S.base) cout<<\顺序栈已清空!!!\} void StackEmpty(SqStack S)//判空 { if(S.top==S.base) cout<<\顺序栈为空!!!\ else cout<<\顺序栈不为空!!!\} void DestroyStack(SqStack &S) { S.base=NULL; cout<<\顺序栈已销毁!!!\} void GetTop(SqStack S,int &e)//返回栈顶元素 { if(S.top==S.base) cout<<\操作失败!!!\ else { cout<<\栈顶元素为: \ e=*(S.top-1); cout< int main() { cout<<\ 1、构造一个空栈 cout<<\ 2、输入栈的元素 cout<<\ 3、输出栈的元素 cout<<\ 4、求栈的长度 cout<<\ 5、求栈顶元素 cout<<\ 6、删除栈顶元素 cout<<\ 7、清空已存在的栈 cout<<\ 8、判断栈是否为空 cout<<\ 0、销毁栈 int n,k; SqStack S; for(n=0;n<15;n++) { cout<<\请选择0-8: \ cin>>k; if(k==0) {DestroyStack(S);n=15;} if(k==1) InitStack(S); if(k==2) { int a; *\*\*\*\*\*\*\*\*\ cout<<\输入栈S的元素为: \ cin>>a; Push(S,a); DisplayStack(S); } if(k==3) DisplayStack(S); if(k==4) cout<<\栈的长度为: \ if(k==5) {int c;GetTop(S,c);} if(k==6) {int b;pop(S,b);} if(k==7) ClearStack(S); if(k==8) StackEmpty(S); } return 0; }
正在阅读:
数据结构 - 顺序栈的基本操作09-25
变压吸附(PSA)法制氧操作规程05-10
数据库答案12-08
彼岸无花02-14
湖南益阳中考面对面2016中考语文 第四部分 作文 专题一 片段作文 新人教版09-25
2014文化旅游学院学生工作总结(1)01-05
县委书记在政协闭幕会议上的讲话10-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 基本操作
- 顺序
- 化工原理、精馏
- 《电子商务法律基础知识》(A卷)
- 分析判断气候类型教学案(10-11)
- ArcEngine 中Geometry对象浅析
- 场地设计试题及答案
- 250t履带式起重机安装拆除方案
- 湖南益阳中考面对面2016中考语文 第四部分 作文 专题一 片段作文 新人教版
- 江西省赣州市兴国县将军中学2019届高三(上)期中化学试卷 Word版含解析
- 国际贸易专业人才培养方案
- 孙子兵法与中国军事谋略
- (期末考试复习)无机化学试卷B(含答案)
- 2019最新八年级语文上册 第三单元 第11课《与朱元思书》教案 新人教版
- 小学升七年级数学暑假班讲义 第01讲 正数和负数、有理数分类
- 绵阳市高中2015级第一次诊断性考试 化学试题及答案
- 山东省青岛城阳区一中2010-2011学年高一英语上学期第二次模块考试外研版
- 流式细胞仪常用的几种检测方法
- 营改增背景下施工企业合同条款约定注意事项
- 小学数学 三年级数学 两位数乘两位数 :口算乘法 说课稿
- 甘谷一中2014--2015学年度第一学期第三次月检测考试
- 邀请函拨冗出席