数据结构:顺序栈的建立、初始化、入栈、出栈、输出(C语言)
大一学C语言的时候还没觉得有啥难的,直到现在学了数据结构。。。
还是自己技术不过关,理解不到位,还需要努力。。。
下面贴关于顺序栈的代码:
#i窗口函数nclude<stdio.h>
#include<stdlib.h>
//存储结构定义最大值
#define STACK_INIT_SIZE 100//存储空间初始分配量
#define STACKINCREATEMENT 10//存储空间分配增量
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int status;
typedef struct{
int *base;
int *top;
int stacksize;
}sqstack;
//初始化
status initstack(sqstack &偏转角度计算公式s)随机森林
{
s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(in封装t));
if(!s.base)
exit(OVERFLOW);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return OK;
}
//入栈
status push(sqstack &数据库开发;s,int e){
if(s.top-s.base>=s.stacksize)//栈满
{
s.base=(int *)realloc(s.base,(s.stacksize+STACKINCREATEMENT)*sizeof(int));//增加存储空间
if(!s.base)
exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize = s.stacksize + STACKINCREATEMENT;
}
*s.top=e;
*ides.top++;
return O定位异常K;
}
//出栈
stiOS 启动图图文教程atus pop(sqstack &am重构p;s,int &e){Eolink 实现//&e??
if(s.base==s.top)//栈空
return ERROR;
e=*(s.top-1); //删除栈顶元素,指针top减一
*s.top--;
return OK;
}
//获取栈顶元素
status gettop(sqstack &s,int &e){
if(s.base==s.top)
return ERROR;
e=*(s.top-1);
return OK;
}
//输出栈中元素
status printstack(sqstack &s){
if(s.base==s.top){
python3printf("空栈\n");
return ERROR;
}
else
printf("栈的内容为&#安全xff1a;&#web网站34;);
for(;s.base!=s.top;s跳槽.base++){ //for(;s.base!=s.top;s.top--)
prin比特币tf("%d ",*s.base);} //printf("%d ",*(s.top-1));
return OK;
}
int main(){
sqstack s;
int x;//输入的数字
if(initstack(s))
printf("初始化成功 !");
while(1){
printf("请输入要进行的操作:\n");
printf("1.进栈\n 2.出栈\n 3.获取栈顶元素\n 4.打印\n 0.退出\n");
scanf("%d",&x);
if(x==0)
break;
switch(x)
{
case 0:break;
case 1:
int pushnumber;
printf("请输入要进栈的元素:");
scanf("%d",&pushnumber);
if(push(s,pushnumber))
printf("进栈成功\n");
else
printf("进栈失败\n");
break;
case 2:
int e;
if(pop(s,e))
printf("元素%d出栈\n&#threejs3rk35684;,e);
else
printf("出栈失败\n");
break;
case 3:
if(gettop(s,e))
printf("栈顶元素是 : %d\n",e);
else
printf("获得栈顶元素失败\n");
break;
case 4:
if(printstack(s))
printf("打印完毕\n");
break;
default:
printf(依赖注入"您进行了误操作,请重试!\n");
break;
}
}
return 1;
}
个人认为需要注意的方面有:
1.malloc函数、realloc函数、sizeof函数 需要搞明白
2.结构体的定义与具体语法
3.指针方面 我个人对于这方面还是不太明白,希望有大佬能指点一下
4.顺序栈的定义
运行结果:
希望大佬们提供宝贵的意见
声明:本站博客内容版权均属于原作者所有,这里所提供资源均只能用于参考学习用,书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。