实验三栈的顺序和链式存储的表示和实现实验目的:1
熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等
掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现
实验内容:1
栈的顺序表示和实现编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能
(1)初始化顺序栈(2)插入一个元素(3)删除栈顶元素(4)取栈顶元素(5)便利顺序栈(6)置空顺序栈#include#include#defineMAXNUM20#defineelemtypeint//定义顺序栈的存储结构typedefstruct{elemtypestack[MAXNUM];inttop;}sqstack;//初始化顺序栈voidinitstack(sqstack*p){if(
p)printf("error");p->top=-1;}//入栈voidpush(sqstack*p,elemtypex){}//出栈elemtypepop(sqstack*p){}//获取栈顶元素elemtypegettop(sqstack*p){elemtypex;if(p->top
=-1){x=p->stack[p->top];returnx;}else{printf("Underflow
\n");return0;}}//遍历顺序栈voidoutstack(sqstack*p){inti;printf("\n");if(p->toptop;i>=0;i--)printf("第%d个数据元素是:%6d\n",i,p->stack[i]);}//置空顺序栈voidsetempty(sqstack*p){}//主函数main(){sqstack*q;inty,cord;elemtypea;do{printf("\n第一次使用必须初始化
\n\n");printf("\n主菜单\n");printf(