程序帮忙修改一下。支持入队(队尾添加元素)、出队(对头删除元素) 2...

发布网友 发布时间:2024-10-24 17:32

我来回答

1个回答

热心网友 时间:2024-11-07 03:16

#include <iostream>

using namespace std;

typedef int QElemType;
typedef struct QNode { // 结点构造类型
int data;
struct QNode *next;
}QNode,*QueuePtr;

typedef struct { // 队首、队尾指针定义
QueuePtr front;
QueuePtr rear;
}LinkQueue;

bool InitQueue(LinkQueue Q) { // 队列初始化:创建一个结点,且使首尾指针都指向该结点
Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));
if(Q.front == NULL) return false;
Q.front->next = NULL;
return true;
}

bool InQueue(LinkQueue Q,QElemType e) { // 入队操作
QueuePtr p = (QueuePtr)malloc(sizeof(QNode));
if(p == NULL) return false;
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return true;
}

bool OutQueue(LinkQueue Q,QElemType *e) { // 出队操作
QueuePtr p;
if(Q.front == Q.rear) return false;
*e = Q.front->data;
p = Q.front;
Q.front = Q.front->next;
if(Q.rear == p) Q.rear = Q.front;
free(p);
return true;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com