- 0
- 0
- 约4.7千字
- 约 9页
- 2018-05-29 发布于贵州
- 举报
数据结构第四阶段 矿大学子友情贡献
第四阶段 数据结构
题目一:用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作。出栈、入栈switch和case 语句对各个操作进行选择使用,通过调用刚刚建立的栈的各个操作函数实现各个操作。
3.详细设计:
源代码:
//(1)链式栈源代码:
#includeiostream
using namespace std;
//链式栈
int N=0;
typedef struct Stack{
int data;
struct Stack *next;
}Stack,*SLink;
typedef struct{
SLink top;
int length;
}SqStack;
void InitStack(SqStack S){
//构造一个空栈
S.top=NULL; //设栈顶指针的初值为空
S.length=0; //空栈中元素个数为
}//InitStack
void Push(SqStack S,int e){
//在栈顶之上插入元素e 为新的栈顶元素
SLink p;
p=new Stack; //建新的结点
p-data=e;
p-next=S.top;
S.top=p;
N++;
++S.length;
cout插入成功。endl;
}//Push
void Pop(SqStack S,int e){
//若栈不空,则删除S的栈顶元素,用e返回其值
if(!S.top)
{ cout此栈为空栈。endl;
exit(0);
}
e=S.top-data;
//--S.length;
S.top=S.top-next;
N--;
--S.length;
cout已经将栈顶元素e删除。endl;
}//Pop
void GetTop(SqStack S,int e){
//若栈不空,取栈顶元素,用e返回其值
if(!S.top)
{ cout此栈为空栈。endl;
exit(0);
}
e=S.top-data;
couteendl;
}//GetTop
void Find(SqStack S,int e){
//查找该栈中是否有所要查找的值,并返回查找结果
SLink p;
p=new Stack;
p=S.top;
int t=0,n;
n=S.length;
do{
if(n==0) break;
if(e==p-datan!=0) {t=1;break;}
if(e!=p-data)
{p=p-next;n--;}
}while(1);
if(t==1)
cout该栈中有要查找的值。endl;
else
cout该栈中没有所要查找的值。endl;
}//Find
void ClearStack(SqStack S){
//将已建的栈清空,为空栈
if(!S.top)
cout此栈已经为空。endl;
S.top=NULL;
N=0;
cout此栈已经清空完毕。endl;
}//ClearStack
void main(){
SqStack Stack;
InitStack(Stack);
int m,n,x,y,z,e,i=0;
cout请输入建立的栈的大小:;
cinn;
do{
cout请选择操作:;
cout1进栈 2出栈 3查看栈顶值 4清空栈 5查找 其他退出endl;
cinm;
switch(m){
case 1:
cout请输入进栈值:;
cinz;
if(i==n)
{
coutSorry!!!endl栈溢出!!endl此程序将退出!!!endl;
exit(0);
}
Push(Stack,z);
i++;
break;
case 2:
Pop(Stack,x);
i--;
break;
case 3:
cout栈顶值为:;
GetTop(Stack,y);
break;
case 4:
ClearStack(Stack);
break;
case 5:
cout请输入想要查找的元素:;
cine;
Find(Stack,e);
break;
default:
{cout所选择的操作错误,此程序将退出!endl;
exit(0);}
}//switch
}while(m!=5||m!=4||m!=3||m!=2||m!=1);
}
//(2)顺序栈源代码:
#includeiostream
using names
您可能关注的文档
- 数字频次合成器.ppt
- 数学121排列三课件人教A版选修.ppt
- 数学15 等腰三角形的轴对称性1 课件 苏科版八年级上.ppt
- 数学282等可能情形下的概率较量争论课件沪科版九年级下.ppt
- 数学332两点间的间隔课件新人教版a版必修2.ppt
- 数学分析变态积分 112无穷积分的收敛判别法.ppt
- 数学建模第五讲 线性代数中的数值计算题目.ppt
- 数学教师初中培训泰安版.ppt
- 数学物理方式 第四章 留数定理.ppt
- 数学第13章整式的乘除温习课件华东师大版八年级上.ppt
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
原创力文档

文档评论(0)