我是靠谱客的博主 激昂御姐,最近开发中收集的这篇文章主要介绍数据结构与算法C语言实现——栈的基本操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据结构与算法C语言实现——栈的基本操作

雨中漫步

问题:编写程序任意输入栈长度和栈中的元素值,构造一个顺序栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作。

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top;
//栈指针
} SqStack;
//顺序栈类型
void InitStack(SqStack *&s)
//清空,初始化
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)
//销毁
{
free(s);
}
bool Push(SqStack *&s,ElemType e)
//入栈
{
if (s->top==MaxSize-1)
//栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1)
//栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1)
//栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
int main()
{
SqStack *s;
InitStack(s);
int L,e,a,n;
printf("请输入栈长和栈的元素值n");
scanf("%d",&L);
while(L--)
{
scanf("%d",&e);
Push(s,e);
}
n=20;
while(n--)
{
printf("清空请按1,销毁请按2,进栈请按3,出栈请按4,取栈顶元素请按5,结束请按6n");
scanf("%d",&a);
if(a==1)
{
InitStack(s);
printf("清空成功!n");
}
if(a==2)
{
DestroyStack(s);
printf("销毁成功!n");
}
if(a==3)
{
printf("请输入进栈元素n");
scanf("%d",&e);
if(Push(s,e))
printf("进栈成功!n");
}
if(a==4)
{
if(Pop(s,e))
printf("出栈成功!n");
}
if(a==5)
{
if(GetTop(s,e))
printf("成功!取出元素为:%dn",e);
}
if(a==6)
{
break;
}
}
}

最后

以上就是激昂御姐为你收集整理的数据结构与算法C语言实现——栈的基本操作的全部内容,希望文章能够帮你解决数据结构与算法C语言实现——栈的基本操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部