#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}Node,*PNode;//定义节点
typedef struct queue
{
PNode front;
PNode rear;
}Queue,*PQueue;//定义队列
PQueue init_queue();
void add(PQueue queue,int val);
void del(PQueue queue);
void traversal(PQueue queue);
int isEmpty(PQueue queue);
int main()
{
PQueue queue = NULL;
queue=init_queue();
//traversal(queue);
add(queue,1);
add(queue,2);
add(queue,3);
traversal(queue);
del(queue);
traversal(queue);
return 0;
}
//初始化队列
PQueue init_queue()
{
PQueue queue = (PQueue)malloc(sizeof(Queue));
PNode node = (PNode)malloc(sizeof(Node));
printf("初始化开始:\n");
if(node == NULL)
{
printf("初始化失败!\n");
exit(-1);
}
node->next = NULL;
queue->front = node;
printf("初始化成功!\n");
queue->rear = node;
return queue;
}
//入队
void add(PQueue queue,int val)
{
PNode node = (PNode)malloc(sizeof(Node));
printf("进队开始:\n");
if(node == NULL)
{
printf("进队失败!\n");
exit(-1);
}
node->data=val;
queue->rear->next=node;
queue->rear=node;
printf("进队成功!\n");
}
//出队
void del(PQueue queue)
{
PNode node;
printf("出队开始:\n");
if(isEmpty(queue))
{
printf("出队失败!\n");
exit(-1);
}
node = queue->front;
queue->front=queue->front->next;
free(node);
printf("出队成功!\n");
}
//遍历队列
void traversal(PQueue queue)
{
PNode pnode = queue->front;
if(isEmpty(queue))
{
exit(-1);
}
printf("队列遍历开始:\n");
while(pnode!=queue->rear)
{
printf("%d\n",pnode->next->data);
pnode = pnode->next;
}
printf("队列遍历结束!\n");
}
//判断队列是否为空
int isEmpty(PQueue queue)
{
if(queue->front==queue->rear)
{
printf("队列为空!\n");
return 1;
}
else
{
return 0;
}
}
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}Node,*PNode;//定义节点
typedef struct queue
{
PNode front;
PNode rear;
}Queue,*PQueue;//定义队列
PQueue init_queue();
void add(PQueue queue,int val);
void del(PQueue queue);
void traversal(PQueue queue);
int isEmpty(PQueue queue);
int main()
{
PQueue queue = NULL;
queue=init_queue();
//traversal(queue);
add(queue,1);
add(queue,2);
add(queue,3);
traversal(queue);
del(queue);
traversal(queue);
return 0;
}
//初始化队列
PQueue init_queue()
{
PQueue queue = (PQueue)malloc(sizeof(Queue));
PNode node = (PNode)malloc(sizeof(Node));
printf("初始化开始:\n");
if(node == NULL)
{
printf("初始化失败!\n");
exit(-1);
}
node->next = NULL;
queue->front = node;
printf("初始化成功!\n");
queue->rear = node;
return queue;
}
//入队
void add(PQueue queue,int val)
{
PNode node = (PNode)malloc(sizeof(Node));
printf("进队开始:\n");
if(node == NULL)
{
printf("进队失败!\n");
exit(-1);
}
node->data=val;
queue->rear->next=node;
queue->rear=node;
printf("进队成功!\n");
}
//出队
void del(PQueue queue)
{
PNode node;
printf("出队开始:\n");
if(isEmpty(queue))
{
printf("出队失败!\n");
exit(-1);
}
node = queue->front;
queue->front=queue->front->next;
free(node);
printf("出队成功!\n");
}
//遍历队列
void traversal(PQueue queue)
{
PNode pnode = queue->front;
if(isEmpty(queue))
{
exit(-1);
}
printf("队列遍历开始:\n");
while(pnode!=queue->rear)
{
printf("%d\n",pnode->next->data);
pnode = pnode->next;
}
printf("队列遍历结束!\n");
}
//判断队列是否为空
int isEmpty(PQueue queue)
{
if(queue->front==queue->rear)
{
printf("队列为空!\n");
return 1;
}
else
{
return 0;
}
}