实验四、栈的顺序和链式存储的表示和实现实验目的: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){if(p->toptop=p->top+1;p->stack[p->top]=x;}elseprintf("\noverflow
\n");}//出栈elemtypepop(sqstack*p){elemtypex;if(p->top
=0){x=p->stack[p->top];printf("以前的栈顶数据元素%d已经被删除
\n",p->stack[p->top]);p->top=p->top-1;return(x);}else{printf("栈为空\n");return(0);}}//获取栈顶元素elemtypegettop(sqstack*p){elemtypex;if(p->top
=-1){x=p->stack[p->top];returnx;}else{printf("Underflow
\n");return0;}}//遍历顺序栈voidoutstack(sq