资源描述:
《栈的操作c语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言实现栈的各种操作,调试运行成功有截图。后附代码。代码:#include#include#include#defineINIT_SIZE5//初始大小#defineINCREASE_SIZE5//每次增加大小typedefstruct{int*top;int*base;intstacksize;}sqstack;//这是一个栈的结构体intCreat_stack(sqstack*s);intGettop_stack(sqstack*s,int
2、*e);intPop_stack(sqstack*s,int*e);intPush_stack(sqstack*s,inte);intDestroy_stack(sqstack*s);intGetsize_stack(sqstack*s);voidmain(){intm,e,n,f,i,f1,k=0;inta1,a2,a3,a4,a5,a6,a7;//是用来接函数的返回值的int*e1,*e2,*e3;sqstackss;ss.base=ss.top=NULL;//初始化e1=e2=e3=&k;//指针
3、声明时最好初始化一下,若果没有初始化,直接*e1,是错误的printf("----------------顺序栈的基本操作---------------");printf("----------------1.创建一个空栈-----------------");printf("----------------2.销毁栈-----------------------");printf("----------------3.单个入栈---------------------");printf
4、("----------------4.单次出栈---------------------");printf("----------------5.查询栈顶元素-----------------");printf("----------------6.多数入栈---------------------");printf("----------------7.集体出栈---------------------");printf("----------------8.查询栈容量-------
5、------------");printf("----------------9.退出-------------------------");loop:printf("请选择:");scanf("%d",&m);switch(m){case1:a1=Creat_stack(&ss);if(a1==0){printf("栈已经存在,请先销毁原栈!");break;}printf("OK!已经成功建立一个空栈!");break;case2:a5=Destroy_stack(&ss);if
6、(a5==0){printf("栈不存在!");break;}else{printf("OK!销毁成功!");break;}case3:printf("请输入你要入栈的元素(整型):");scanf("%d",&e);a2=Push_stack(&ss,e);if(a2==0){printf("栈不存在,请先创建栈!");break;}printf("OK!入栈成功!");break;case4:a3=Pop_stack(&ss,e1);if(a3==-1){printf("栈不存在
7、,请先创建栈!");break;}elseif(a3==0){printf("栈为空!");break;}else{printf("OK!出栈成功!出栈元素为:");printf("%d",*e1);break;}case5:a4=Gettop_stack(&ss,e2);if(a4==-1){printf("栈不存在,请先创建栈!");break;}elseif(a4==0){printf("栈为空!");break;}else{printf("OK!查询栈顶元素为:");printf
8、("%d",*e2);break;}case6:printf("请输入您要入栈的个数:");scanf("%d",&n);for(i=0;i