-->
当前位置:首页 > 题库 > 正文内容

程序填空题:链队入队出队操作

Luz4年前 (2021-05-10)题库2891
链队基本操作。
```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

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。