用链表建立队列c++代码
时间: 2023-03-11 19:34:16 浏览: 97
下面是用C语言实现队列的代码: #include<stdio.h>
#include<stdlib.h> //定义一个结构体
struct node
{
int data;
struct node *next;
}; //定义一个空的队列头
struct node *front = NULL; //定义一个空的队列尾
struct node *rear = NULL; //进队列
void enqueue(int x)
{
//申请新节点
struct node *temp =
(struct node*)malloc(sizeof(struct node));
temp->data =x;
temp->next = NULL;
//判断队列是否为空
if(front == NULL && rear == NULL){
front = rear = temp;
return;
}
//把新节点加到队尾
rear->next = temp;
//更新队尾指针
rear = temp;
} //出队列
void dequeue()
{
//判断队列是否为空
struct node *temp = front;
if(front == NULL) {
printf("Queue is Empty\n");
return;
}
//如果队列只有一个元素
if(front == rear) {
front = rear = NULL;
}
else {
front = front->next;
}
free(temp);
} //显示队列
void display()
{
struct node *temp = front;
while(temp != NULL) {
printf("%d ",temp->data);
temp = temp->next;
}
printf("\n");
} int main(){
enqueue(2);
enqueue(4);
enqueue(6);
enqueue(8);
display();
dequeue();
display();
return 0;
}