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

📄 list_queue.cpp

📁 C++的电子教程
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0

typedef  struct node          //声明结点类型NODE
{	int data;
	struct node *next;
} NODE;

NODE *tail,*head=NULL;

void Print()	/*输出队列内容*/
{	NODE *temp=head;
	while(temp!=NULL)
	{	printf("[%d] ",temp->data);
		temp=temp->next;
	}
	printf("\n");
}

/*进队*/
void Insert(int value)	
{	NODE *p;
	p=(NODE *)malloc(sizeof(NODE));
	p->data=value;
	p->next=NULL;

	if(head==NULL)  
		head=p;        //若为空,连接到头结点
	else	
		tail->next=p;              //链表非空,连接到尾结点

    tail=p;
}

/*出队*/
int Delete(int *val)
{
	NODE *p;

	if(head==NULL)  
	{	
		printf("The queue is empty ! \n");
		return FALSE;
	}

	*val=head->data;
	p=head;
	head=head->next;
	free(p);

	return TRUE;
}

/*主程序*/
void main()
{
	int choose,val_in,val_out;

	while(1)
	{
		printf("\n 1: 进队");
		printf("\n 2: 出队");
		printf("\n 3: 退出");

		printf("\n 请选择=>");
		scanf("%d",&choose);

		switch(choose)
		{
			case 1:
				printf("Input the data=>");
				scanf("%d",&val_in);
				Insert(val_in);

				printf("\nThe queue after inserted is: ");
				Print();

				break;
			case 2:
				if(Delete(&val_out)==TRUE)
				{
					printf("The output value is [%d]\n",val_out);
					printf("\nThe queue after inserted is: ");
					Print();
				}

				break;
			case 3:
				return;
		}
	}
}

⌨️ 快捷键说明

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