以下是补全后的代码:
#include<iostream>
using namespace std;
#define QueueMax 100
typedef struct QNode {
int data; // 数据域
struct QNode* next; // 指针域
}QNode, * QueuePtr;
typedef struct LinkQueue {
QueuePtr front; // 头指针,指向列队列头指针
QueuePtr rear; // 尾指针,指向了队列最后一个结点
}LinkQueue;
void InitQueue(LinkQueue& Q) { // 链队列初始化
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
}
void DestroyQueue(LinkQueue& Q) { // 如果链队列为空,则销毁该空链队列
if (Q.front == Q.rear)
delete Q.front;
}
void GetTail(LinkQueue Q, int& e) { // 取链队列的队尾元素值
if (Q.front->next == NULL)
e = 0;
else
e = Q.rear->data;
}
void GetHead(LinkQueue Q, int& e) { // 取链队列的队头元素值
if (Q.front->next == NULL)
return;
else
e = Q.front->next->data;
}
void EnQueue(LinkQueue& Q, int e) { // 插入一个数据域值为e的结点到链队列Q中,成为新的队尾结点
}
void DeQueue(LinkQueue& Q, int& e) { // 链队列出队
}
void InSerch(LinkQueue arr[], int& curnum, int e) {
int i, tail;
GetTail(arr[0], tail);
if (e == tail + 1)
EnQueue(arr[0], e);
else {
for (i = 1; i < curnum; i++) {
GetTail(arr[i], tail);
if (e > tail) {
EnQueue(arr[i], e);
break;
}
else
continue;
}
if (i == curnum) {
InitQueue(arr[curnum]);
EnQueue(arr[curnum], e);
curnum++;
}
}
}
void OutSerch(LinkQueue arr[], int curnum, int n) { // 全部队列按顺序进入出火车站的队列中arr[0]中
}
int main() {
int i, n, tr;
int qnum, head;
cin >> n;
LinkQueue ql[QueueMax];
InitQueue(ql[0]); // 0号队列用来作为出站的队列
qnum = 1;
for (i = 0; i < n; i++) {
cin >> tr;
InSerch(ql, qnum, tr);
}
OutSerch(ql, qnum, n);
for (i = 0; i < n; i++) {
DeQueue(ql[0], head);
cout << head << " ";
}
return 0;
}
希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问




