📄 ch4_6.c
字号:
#include<stdio.h>
#include<stdlib.h>
typedef struct list /* 声明链表结构 */
{
int data; /* 数据域 */
struct list *link; /* 指针域 */
}node;
node *top=NULL;
void PUSH(int); /* 函数的声明 */
void POP(void);
void main( )
{
node *ptr;
int select=0; /* 用户的选择 */
int input;
while(select != 4)
{
printf("\n1.加入数据 2.删除数据 3.输出数据 4.离开? ");
scanf("%d", &select);
switch(select)
{
case 1:
printf("请输入数据:");
scanf("%d", &input);
PUSH(input); /* 加入结点至栈 */
break;
case 2:
POP( ); /* 自栈中删除结点 */
break;
case 3:
printf("栈中的内容为:");
for(ptr=top; ptr!=NULL; ptr=ptr->link)
printf("[%d]", ptr->data);
printf("\n");
break;
case 4:
printf("Bye bye!\n");
break;
default:
printf("\n没有这个选择!\n");
}
}
}
void PUSH(int entry) /* 栈加入结点的函数 */
{
node *new_node;
new_node=(node *)malloc(sizeof(node)); /* 配置内存空间 */
if(new_node == NULL) /* 检查内存指针 */
{
printf("内存配置失败!\n");
exit(1); /* 结束程序 */
}
new_node->data=entry;
new_node->link=top;
top=new_node;
}
void POP(void) /* 栈中删除数据的函数 */
{
node *del_node;
if(!top)
{
printf("栈中没有数据可供删除!\n");
return;
}
del_node=top;
printf("被删除的数据为:%d\n", del_node->data);
top=del_node->link;
free(del_node); /* 归还内存 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -