首先就是定义一个结构结构体 ,用来装队列的头和尾
#include<stdio.h>
#include<iostream>
using namespace std;
struct node
{
int data;
node *nex;
};
struct Queue
{
node *head=new node;
node *rear=new node;
}Q;/*队列的头和尾*/
void get_link(int x,Queue *Q)
{
node *tail=Q->rear;/*队列尾部*/
while(x--)
{
node *q=new node;
scanf("%d",&q->data);
tail->nex=q;
q->nex=NULL;
tail=q;
//Q->rear=q;
/*或者这样记录尾部*/
}
Q->rear=tail;/*更新尾部*/
}
void out_link(node *head)
{
node *q=head->nex;
while(q)/*队列不为空*/
{
printf("%d\n",q->data);
q=q->nex;
}
head->nex=q;
Q.head=head;
}
int main()
{
int x;
scanf("%d",&x);
node *q = new node; /*表头*/
Q.head=Q.rear=q;/*表头没有数据,尾部有*/
get_link(x,&Q);/*传进去头和尾*/
out_link(Q.head);
if(!Q.head->nex)/*判断是否空*/
printf("1\n");
return 0;
}