欢迎来到天天文库
浏览记录
ID:55122674
大小:95.95 KB
页数:11页
时间:2020-04-27
《栈的基本操作.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构(DateStructure)上机报告学号201427187姓名杨荣庆班级信息143时间2015.11.28(一)上机目的1.掌握栈的插入、删除、栈的初始化及取栈顶元素等基本操作。2.理解栈的特点,掌握栈的定义和基本操作。3.掌握栈的顺序存储结构。(二)实验要求1.源代码(包括主要结构、主要语句、函数注释说明)。2.运行结果(包括程序如何使用,输入数据和输出结果)。3.实验体会和问题分析。(三)基本知识和原理按设定的初始量进行第一次存储分配,base可称为栈底指针,在顺序栈中,它始终指向栈底的位置,若base的值为NULL,则表明栈结构不
2、存在。称top为栈顶指针,其初值指向栈底,即top=base可作为栈空的标记,每当插入新的栈顶元素时,指针top增1;删除栈顶元素时,指针top减1,因此,非空栈中的栈顶指针始终在栈顶元素的下一个位置上。A出栈(top-1)ABABAAtoptoptoptopbaseA入栈baseB入栈baseB出栈(top-1)base入栈过程出栈过程11(三)程序算法分析及实现#includeusingnamespacestd;#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedef
3、struct{int*base;int*top;intstacksize;//当前栈可使用的最大容量}SqStack;voidInitStack(SqStack&S)//构造一个空栈{S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base){cout<<"存储分配失败!"<4、//插入元素e为栈顶元素{if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)cout<<"存储分配失败!"<5、=S.base;if(S.base==S.top)cout<<"当前栈为空栈!"<6、.top!=S.base)b=*--S.top;if(S.top==S.base)cout<<"顺序栈已清空!"<7、顶元素{if(S.top==S.base)cout<<"操作失败!"<8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
4、//插入元素e为栈顶元素{if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)cout<<"存储分配失败!"<5、=S.base;if(S.base==S.top)cout<<"当前栈为空栈!"<6、.top!=S.base)b=*--S.top;if(S.top==S.base)cout<<"顺序栈已清空!"<7、顶元素{if(S.top==S.base)cout<<"操作失败!"<8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
5、=S.base;if(S.base==S.top)cout<<"当前栈为空栈!"<6、.top!=S.base)b=*--S.top;if(S.top==S.base)cout<<"顺序栈已清空!"<7、顶元素{if(S.top==S.base)cout<<"操作失败!"<8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
6、.top!=S.base)b=*--S.top;if(S.top==S.base)cout<<"顺序栈已清空!"<7、顶元素{if(S.top==S.base)cout<<"操作失败!"<8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
7、顶元素{if(S.top==S.base)cout<<"操作失败!"<8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<
此文档下载收益归作者所有