程序填空题:链队入队出队操作
链队基本操作。
```c++
#include
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef char QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
} LinkQueue;
Status InitQueue(LinkQueue &Q) {
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
return OK;
}
Status EnQueue(LinkQueue &Q, QElemType e) {
QueuePtr p;
p = new QNode;
p->data = e;
p->next = NULL;
@@[Q.rear->next = p](2);
@@[Q.rear = p](2);
return OK;
}
Status DeQueue(LinkQueue &Q, QElemType &e) {
QueuePtr p;
if (Q.front == Q.rear)
return ERROR;
p = Q.front->next;
e = p->data;
@@[Q.front->next = p->next](2);
if (Q.rear == p)
@@[Q.rear = Q.front](2);
delete p;
return OK;
}
int main() {
LinkQueue Q;
int n,m,i;
char c;
InitQueue(Q);
cin >> n;
for(i=0;i cin >> c;
EnQueue(Q,c);
}
for(i=0;i DeQueue(Q,c);
}
cin >> m;
for(i=0;i cin >> c;
EnQueue(Q,c);
}
for(i=0;i DeQueue(Q,c);
cout << c << " ";
}
return 0;
}
```
### 输入格式:
输入第一行为1个整数n,第二行输入n个字符,将n个字符依次入队,再执行n次出队操作(不输出)。
输入第三行为1个整数m,第四行输入m个字符,将m个字符依次入队,再执行m次出队操作并输出。
```
4
ABCD
5
12345
```
### 输出格式:
```
1 2 3 4 5
```
答案:
第1空:Q.rear->next = p
第2空:Q.rear = p
第3空:Q.front->next = p->next
第4空:Q.rear = Q.front
```c++
#include
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef char QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
} LinkQueue;
Status InitQueue(LinkQueue &Q) {
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
return OK;
}
Status EnQueue(LinkQueue &Q, QElemType e) {
QueuePtr p;
p = new QNode;
p->data = e;
p->next = NULL;
@@[Q.rear->next = p](2);
@@[Q.rear = p](2);
return OK;
}
Status DeQueue(LinkQueue &Q, QElemType &e) {
QueuePtr p;
if (Q.front == Q.rear)
return ERROR;
p = Q.front->next;
e = p->data;
@@[Q.front->next = p->next](2);
if (Q.rear == p)
@@[Q.rear = Q.front](2);
delete p;
return OK;
}
int main() {
LinkQueue Q;
int n,m,i;
char c;
InitQueue(Q);
cin >> n;
for(i=0;i
EnQueue(Q,c);
}
for(i=0;i
}
cin >> m;
for(i=0;i
EnQueue(Q,c);
}
for(i=0;i
cout << c << " ";
}
return 0;
}
```
### 输入格式:
输入第一行为1个整数n,第二行输入n个字符,将n个字符依次入队,再执行n次出队操作(不输出)。
输入第三行为1个整数m,第四行输入m个字符,将m个字符依次入队,再执行m次出队操作并输出。
```
4
ABCD
5
12345
```
### 输出格式:
```
1 2 3 4 5
```
答案:
第1空:Q.rear->next = p
第2空:Q.rear = p
第3空:Q.front->next = p->next
第4空:Q.rear = Q.front