堆栈,队列的操作上级实验.doc

堆栈,队列的操作上级实验.doc

ID:29038162

大小:123.50 KB

页数:9页

时间:2018-12-16

堆栈,队列的操作上级实验.doc_第1页
堆栈,队列的操作上级实验.doc_第2页
堆栈,队列的操作上级实验.doc_第3页
堆栈,队列的操作上级实验.doc_第4页
堆栈,队列的操作上级实验.doc_第5页
资源描述:

《堆栈,队列的操作上级实验.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验二堆栈和队列的基本操作一、上机目的:1、掌握栈的思想及其存储实现,掌握栈,队列的类型定义方法。2、明确栈是特殊的线性表。3、掌握栈的常见算法的程序实现:初始化栈、判栈为空、出栈、入栈,出队入队等运算。4、掌握顺序栈,链栈,队列的简单应用。5、理解栈,队列的算法思想,能够根据实际情况选择合适的存储结构。二、上机要求:1、认真阅读和掌握本实验的算法。2、上机将本算法实现。3、保存和打印出程序的运行结果,并结合程序进行分析。三、上机内容:堆栈(包括顺序结构、链式结构)和队列的基本操作:初始化栈、判断栈空、出栈、入栈等运算。四.实验代码(详细设计):顺序栈的基本操作:#in

2、clude"String"typedefcharElemType;#defineStackSize100/*顺序栈的初始分配空间*/typedefstruct{ElemTypedata[StackSize];/*保存栈中元素*/inttop;/*栈顶指针*/}SqStack;voidInitStack(SqStack&st){st.top=-1;}intPush(SqStack&st,ElemTypex)/*进栈运算*/{if(st.top==StackSize-1)/*栈满*/return0;else/*栈不满*/{st.top++;st.data[st.top]=x

3、;return1;}}intPop(SqStack&st,ElemType&x)/*出栈运算*/{if(st.top==-1)/*栈空*/return0;else/*栈不空*/{x=st.data[st.top];st.top--;return1;}}intGetTop(SqStackst,ElemType&x)/*取栈顶元素*/{if(st.top==-1)/*栈空*/return0;else{x=st.data[st.top];return1;}}intStackEmpty(SqStackst)/*判断栈空运算*/{if(st.top==-1)/*栈空*/retur

4、n1;else/*栈不空*/return0;}voidmain(){SqStackst;ElemTypee;InitStack(st);printf("栈%s",(StackEmpty(st)==1?"空":"不空"));printf("a进栈");Push(st,'a');printf("b进栈");Push(st,'b');printf("c进栈");Push(st,'c');printf("d进栈");Push(st,'d');printf("栈%s",(StackEmpty(st)==1?"空":"不空"));GetTop(st,e);p

5、rintf("栈顶元素:%c",e);printf("出栈次序:");while(!StackEmpty(st)){Pop(st,e);printf("%c",e);}printf("");}运行结果链栈的基本操作:#include#includetypedefintElemType;typedefstructlsnode{ElemTypedata;structlsnode*next;}LinkStack;voidInitStack(LinkStack*&ls){ls=NULL;}voidPush(LinkStack*&ls

6、,ElemTypex){LinkStack*p;p=(LinkStack*)malloc(sizeof(LinkStack));p->data=x;p->next=ls;ls=p;}intPop(LinkStack*&ls,ElemType&x){LinkStack*p;if(ls==NULL)return0;else{p=ls;x=p->data;ls=p->next;free(p);return1;}}intGetTop(LinkStack*&ls,ElemType&x){if(ls==NULL)return0;else{x=ls->data;return1;}}i

7、ntStackEmpty(LinkStack*ls){if(ls==NULL)return1;elsereturn0;}voidmain(){LinkStack*ls;ElemTypee;InitStack(ls);printf("栈%s",(StackEmpty(ls)==1?"空":"不空"));printf("a进栈");Push(ls,'a');printf("b进栈");Push(ls,'b');printf("c进栈");Push(ls,'c');printf("d进栈");Push(ls,'d');pri

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。