DOC-C语言 顺序栈的基本操作
C语言 顺序栈的基本操作
//顺序栈的基本操作:初始化,入栈,取栈顶元素,删除栈顶元素,显示 //经编译和测试无任何问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
~欢迎学习~
#define stack_size 5
#include
#include
struct operate_stack
{
int *top; int *base; int size;
//栈顶指针 //栈底指针 //栈的大小 //初始化栈:让栈顶和栈底指针指向同一块区域,然后进行}s; int *initiate_stack()
初始化,最后显示出来
{
int i;
int *p;
s.size=stack_size;
s.base=s.top=(int *)malloc(stack_size*sizeof(int));
printf("请输入%d个数对该栈进行初始化\n",stack_size-1);
while(s.top=stack_size)
printf("栈满!不能插入!");
else {
*s.top=x;
s.top++;
p=s.top;
printf("入栈成功~\n");
return p;
}
}
int *pop()
{
int *p; //出栈:判断栈空,然后出栈
else { if(s.top==s.base) printf("栈为空!不能删除!");
} s.top--; p=s.top; printf("出栈成功~\n"); return p;
}
int *get_top(int *p) //获取栈顶元素:先判定栈空 {
int e;
if(s.base==s.top)
printf("栈空!\n");
else
printf("取得的栈顶元素是:");
printf("%d\n",*(p-1));
return p; {
}
}
void main()
{
//主函数 int i,element,j; int *p; while(1)
} } printf("[1]初始化 [2]入栈 [3]出栈 [4]取栈顶元素 [5]显示 [6]
退出:"); scanf("%d",&i); if(i==1)p=initiate_stack(); else if(i==2)
{ } else if(i==3)p=pop(); else if(i==4)p=get_top(p); else
if(i==5)display(p); else if(i==6)break; else printf("请重新输入~
\n"); printf("请输入要插入的元素\n"); scanf("%d",&element); p=push(element);