⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题3-链队列管理.c

📁 数据结构各章实验源代码; 数据结构实验源代码
💻 C
字号:
#include  "datastru.h"
#include  <stdio.h>
#include  <malloc.h>

DATATYPE1 dellinkqueue(LINKQUEUE *q)
{/*删除队头元素并返回*/
	LINKQLIST *p;
	DATATYPE1 v;

	if(q->front == q->rear)
	   {	printf("队列空\n");
		v = 0;}
	else
	   {	p = (q->front)->next;
		(q->front)->next = p->next;
		if(p->next == NULL)
			q->rear = q->front;
		v = p->data;
		free(p);}
	return v;
}

void enlinkqueue(LINKQUEUE *q, DATATYPE1 x)
{/*元素x 入队列*/
	(q->rear)->next = (LINKQLIST *)malloc(sizeof(LINKQLIST));
	q->rear = (q->rear)->next;
	(q->rear)->data = x;
	(q->rear)->next = NULL;
}

void initlinkqueue(LINKQUEUE *q)
{/*链队列初始化*/
	q->front = (LINKQLIST *)malloc(sizeof(LINKQLIST));
	(q->front)->next = NULL;
	q->rear = q->front;
}

void outlinkqueue(LINKQUEUE *q)
{/*链队列元素依次显示*/
	LINKQLIST *p;

	p = q->front;
	printf("队列元素显示 : ");
	while(p != q->rear)
	  {p = p->next;
	   printf("%d ",p->data);}
	printf("\n");
}

main()
{
	LINKQUEUE lq, *p;
	int j;

	p = &lq;
	initlinkqueue(p);
	printf("输入一整数(奇数——入队列、偶数——删除队头元素、0——退出) : ");
	scanf("%d", &j);
	while(j != 0)                    /*输入 0——退出*/
	  {  if(j % 2 == 1)              
		enlinkqueue(p,j);        /*输入奇数——入队列*/
	     else
		j = dellinkqueue(p);     /*输入偶数——删除队头元素*/
	     outlinkqueue(p);
	     printf("\n输入一整数(奇数——入队列、偶数——删除队头元素、0——退出) : ");
	     scanf("%d", &j);             /*继续输入*/
	   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -