链队列出入队列c语言程序,链队列的基本操作及C语言实现

#include

#include

typedef struct QNode{

int data;

struct QNode * next;

}QNode;

QNode * initQueue(){

QNode * queue=(QNode*)malloc(sizeof(QNode));

queue->next=NULL;

return queue;

}

QNode* enQueue(QNode * rear,int data){

QNode * enElem=(QNode*)malloc(sizeof(QNode));

enElem->data=data;

enElem->next=NULL;

//使用尾插法向链队列中添加数据元素

rear->next=enElem;

rear=enElem;

return rear;

}

void DeQueue(QNode * front,QNode * rear){

if (front->next==NULL) {

printf("队列为空");

return ;

}

QNode * p=front->next;

printf("%d",p->data);

front->next=p->next;

if (rear==p) {

rear=front;

}

free(p);

}

int main() {

QNode * queue,*front,*rear;

queue=front=rear=initQueue();//创建头结点

//向链队列中添加结点,使用尾插法添加的同时,队尾指针需要指向链表的最后一个元素

rear=enQueue(rear, 1);

rear=enQueue(rear, 2);

rear=enQueue(rear, 3);

rear=enQueue(rear, 4);

//入队完成,所有数据元素开始出队列

DeQueue(front, rear);

DeQueue(front, rear);

DeQueue(front, rear);

DeQueue(front, rear);

DeQueue(front, rear);

return 0;

}

运行结果:

1234队列为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值