数据结构实验二栈基本操作

数据结构实验二栈基本操作

ID:30173410

大小:129.54 KB

页数:6页

时间:2018-12-27

数据结构实验二栈基本操作_第1页
数据结构实验二栈基本操作_第2页
数据结构实验二栈基本操作_第3页
数据结构实验二栈基本操作_第4页
数据结构实验二栈基本操作_第5页
资源描述:

《数据结构实验二栈基本操作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二栈基本操作一、实验目的掌握栈的基本操作:初始化、判空、判满、入栈、出栈、取栈顶元素等运算。二、实验要求包含有头文件和main函数;1.格式正确,语句采用缩进格式;2.设计子函数实现题目要求的功能;3.编译、连接通过,熟练使用命令键;4.运行结果正确,输入输出有提示,格式美观。三、实验设备、材料和工具1.奔腾2计算机或以上机型2.turboc2,win-tc四、实验内容和步骤实验内容:1.分析程序。2.完成程序编写和补充步骤:3.确定数据的结构;4.利用main函数调用各子函数;5.调试、分析运行结果。五、实验报告要求1.根据实验内

2、容初步设计好程序,并从理论上排除错误;2.针对程序的健壮性准备好测试数据;3.结果分析中如实填写运行后的结果,记录调试过程中产生的重要问题和解决方法。六、根据实验过程填写下面内容基础部分1.构建下列头文件,文件名称seqstack.h#defineTRUE1#defineFALSE0#defineStack_Size500#defineStackElementTypeinttypedefstruct{StackElementTypeelem[Stack_Size];/*用来存放栈中元素的一维数组*/inttop;/*用来存放栈顶元素的下

3、标,top为-1表示空栈*/}SeqStack;voidInitStack(SeqStack*S){S->top=-1;}intIsEmpty(SeqStack*S)/*判断栈S为空栈时返回值为真,反之为假*/{return(S->top==-1?TRUE:FALSE);}intIsFull(SeqStack*S)/*判断栈S为满栈时返回值为真,反之为假*/{return(S->top==Stack_Size-1?TRUE:FALSE);}intPush(SeqStack*S,StackElementTypex){if(S->top==

4、Stack_Size-1)return(FALSE);/*栈已满*/S->top++;S->elem[S->top]=x;return(TRUE);}intPop(SeqStack*S,StackElementType*x){if(S->top==-1)/*栈为空*/return(FALSE);else{*x=S->elem[S->top];S->top--;/*修改栈顶指针*/return(TRUE);}}intGetTop(SeqStack*S,StackElementType*x){if(S->top==-1)/*栈为空*/ret

5、urn(FALSE);else{*x=S->elem[S->top];return(TRUE);}}2.构建判断回文序列的程序,完成运行和调试。回文序列如:序列1&序列2//包含顺序栈头文件#include"seqstack.h"//包含顺序栈头文件#include"stdio.h"voidmain(){charch,temp,str[100];inti;SeqStacks;//定义顺序栈sInitStack(&s);//初始化顺序栈sprintf("输入字符串(以&居中):");scanf("%s",str);i=0;ch=str

6、[i];while(ch!='&')//括号内填入判断条件{Push(&s,ch);//变量ch值入栈i++;//变量i自增ch=str[i];//赋值str中下一个元素值给ch变量}while(!IsEmpty(&s))//括号内填入判断条件{Pop(&s,&temp);//s出栈,出栈值存放与temp变量中i++;//变量i自增ch=str[i];//赋值str中下一个元素值给ch变量if(temp!=ch)//括号内填入判断条件break;}if(!IsEmpty(&s)

7、

8、str[i+1]!='')//括号内填入判断条件pr

9、intf("no!");elseprintf("yes!");}3.编写程序使栈内元素倒置(设置两个栈,把其中一个栈的元素顺序出栈,并顺序放入第二个栈中,则第二个栈中元素已经倒置)!#include"stdio.h"//包含基本输入输出头文件#include"seqstack.h"//包含顺序栈头文件main(){SeqStacks,t;//定义两个栈,s和tcharstr[100],x;//定义字符数组str用于存放输入的入栈字符串,x用于出栈存放的变量inti;printf("请输入要入栈的字符:");gets(str)

10、;//输入字符串InitStack(&s);//对栈s进行初始化InitStack(&t);//对栈t进行初始化for(i=0;str[i]!='';i++)Push(&s,str[i]);//顺序读取

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

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

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