电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

用顺序结构表示栈并实现栈的各种基本操作

用顺序结构表示栈并实现栈的各种基本操作_第1页
1/14
用顺序结构表示栈并实现栈的各种基本操作_第2页
2/14
用顺序结构表示栈并实现栈的各种基本操作_第3页
3/14
栈的顺序表示和实现2.2 基础实验2.2.1 实验目的(1)掌握栈的顺序表示和实现(2)掌握栈的链式表示和实现(3)掌握队列的顺序表示和实现(4)掌握队列的链式表示和实现2.2.2 实验容实验一:栈的顺序表示和实现[ 实验容与要求 ] 编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化顺序栈(2)插入元素(3)删除栈顶元素(4)取栈顶元素(5)遍历顺序栈(6)置空顺序栈[ 知识要点 ] 栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。对于顺序栈,入栈时,首先推断栈是否为满,栈满的条件为:p->top= =MAXNUM-1,栈满时,不能入栈;否则出现空间溢出,引起错误,这种现象称为上溢。出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。注意:(1)顺序栈中元素用向量存放(2)栈底位置是固定不变的,可设置在向量两端的任意一个端点(3)栈顶位置是随着进栈和退栈操作而变化的,用一个整型量 top(通常称 top 为栈顶指针)来指示当前栈顶位置[ 实现提示 ] /*定义顺序栈的存储结构*/typedef struct { ElemType stack[MAXNUM]; int top;}SqStack;/*初始化顺序栈函数*/void InitStack(SqStack *p){q=(SqStack*)malloc(sizeof(SqStack) /*申请空间*/)/*入栈函数*/void Push(SqStack *p,ElemType x){if(p->toptop=p->top+1; /*栈顶+1*/ p->stack[p->top]=x; } /*数据入栈*/}/*出栈函数*/ElemType Pop(SqStack *p){x=p->stack[p->top]; /*将栈顶元素赋给 x*/p->top=p->top-1; } /*栈顶-1*//*猎取栈顶元素函数*/ElemType GetTop(SqStack *p){ x=p->stack[p->top];}/*遍历顺序栈函数*/void OutStack(SqStack *p){ for(i=p->top;i>=0;i--)printf("第%d 个数据元素是:%6d\n",i,p->stack[i]);}/*置空顺序栈函数*/void setEmpty(SqStack *p){ p->top= -1;}[ 参考程序 ] #include#include#define MAXNUM 20#define ElemType int/*定义顺序栈的存储结构*/typedef struct{ ElemType stack[MAXNUM]; int top;}SqStack;/*初始化顺序栈*/void InitStack(SqStack *p){ if(!p) printf("Eorror"); p->top=-1;}/*入栈*/void Push(SqStack *p,ElemType x){ if(p->toptop=p->top+1; p->stack[p->top]=x; } else printf("Overflow!\n");}...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

用顺序结构表示栈并实现栈的各种基本操作

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部