📄 ch4_7.c
字号:
#include<stdio.h>
#include<stdlib.h>
typedef struct list /* 声明链表结构 */
{
int data; /* 数据域 */
struct list *link; /* 指针域 */
}node;
node *front=NULL;
node *rear=NULL;
void ADDQ(int); /* 函数的声明 */
void DELETEQ(void);
void main( )
{
node *ptr;
int select=0;
int input; /* 用户的选择 */
while(select != 4)
{
printf("1.加入数据 2.删除数据 3.输出数据 4.离开? ");
scanf("%d", &select);
switch(select)
{
case 1:
printf("请输入数据: ");
fflush(stdin);
scanf("%d", &input);
ADDQ(input); /* 加入结点至队列 */
break;
case 2:
DELETEQ( ); /* 自队列中删除结点 */
break;
case 3:
printf("队列中的内容为: ");
for(ptr=front; ptr!=NULL; ptr=ptr->link)
printf("[%d]", ptr->data);
printf("\n");
break;
case 4:
printf("Bye bye!\n");
break;
default:
printf("没有这个选择\n");
}
}
}
void ADDQ(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=NULL;
if(rear == NULL)
front=rear=new_node;
else
{
rear->link=new_node;
rear=new_node;
}
}
void DELETEQ(void) /* 自队列的前端删除结点 */
{
node *del_node;
if(!front)
{
printf("队列中没有数据可供删除!\n");
return;
}
del_node=front;
front=del_node->link;
printf("被删除的数据为: %d\n", del_node->data);
free(del_node); /* 归还内存 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -