一、栈的链式存储结构
代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct stack
{
int data;
struct stack *next;
}Sqstack;
Sqstack *top;
void menu();
void stack_Push(Sqstack *top);
int Out_stack(Sqstack *top);
int main()
{
int select;
Sqstack s;
stack_Init();
while(1)
{
menu();
printf("请输入操作数!\n");
scanf("%d",&select);
switch(select)
{
case 1:stack_Push(&s);break;
case 2:Out_stack(&s);break;
case 3:break;
case 4:exit(0);break;
default:break;
}
system("pause");
system("cls");
}
return 0;
}
void menu()
{
printf("(1)--入栈!\n");
printf("(2)--出栈!\n");
printf("(3)--输出栈中元素!\n");
printf("(4)--退出!\n");
}
void stack_Init()
{
top=(Sqstack *)malloc(sizeof(Sqstack));
top->next=NULL;
}
void stack_Push(Sqstack *top)
{
Sqstack *s;
s=(Sqstack *)malloc(sizeof(Sqstack));
printf("请输入入栈数据!\n");
scanf("%d",&s->data);
s->next=top->next;
top->next=s;
printf("入栈成功!\n");
}
int Out_stack(Sqstack *top)
{
Sqstack *p;
int x;
if(top->next!=NULL)
{
p=top->next;
top->next=p->next;
x=p->data;
free(p);
printf("出栈成功!\n");
}
else
{
printf("栈为空!\n");
}
return x;
} 在这里插入代码片