//链队列的实现
#include <stdio.h>
#include <stdlib.h>
typedef struct LinkNode{
int data;
struct LinkNode *next;
}LinkNode;
typedef struct{
LinkNode *front,*rear;
}LinkQueue;
//链式队列的初始化
void InitQueue(LinkQueue &Q){
Q.front = Q.rear =(LinkNode*)malloc(sizeof(LinkNode));
Q.front->next= NULL;
}
//判队空
bool IsEmpty(LinkQueue &Q){
if(Q.front == Q.rear)
return true;
else
return false;
}
//入队
void EnQueue(LinkQueue &Q,int x){
LinkNode *s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = x;s->next = NULL;
Q.rear->next = s;
Q.rear = s;
}
//出队
bool DeQueue(LinkQueue &Q,int &x){
if(Q.front == Q.rear)
return false;
LinkNode *p = Q.front->next;
x = p->data;
Q.front->next = p->next;
if(Q.rear == p)
Q.rear = Q.front;
free(p);
return true;
}
int main(){
int x,counter;
LinkQueue Q;
InitQueue(Q);
printf("请输入队列元素个数:\n");
scanf("%d",&counter);
printf("请输入队列元素:\n");
for(int i = 0;i < counter;i++){
scanf("%d",&x);
EnQueue(Q,x);
}
printf("出队结果如下:\n");
for(int i = 0;i < counter;i++){
DeQueue(Q,x);
printf("\t%d",x);
}
return 0;
}
数据结构——链队列的简单实现
猜你喜欢
转载自blog.csdn.net/qq_39316701/article/details/101427422
今日推荐
周排行