给定一个队列,利用队列的合法操作(isEmpty、AddQ、DeleteQ)实现队列中元素的从小到大排序。其中:输入第一行表示队列元素个数,第二行为队列中的元素。 注意:不允许直接访问队列中的元素。 输入样例: 10 9 4 6 1 8 3 7 0 2 5 输出样例: 0 1 2 3 4 5 6 7 8 9 利用c语言编写程序,不使用指针
时间: 2024-01-07 16:03:48 浏览: 218
好的,以下是利用队列实现排序的 C 语言代码,不使用指针:
```c
#include <stdio.h>
#define MAXN 1000 // 队列最大长度
typedef struct {
int data[MAXN];
int front, rear; // 队首队尾指针
} Queue;
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
int isEmpty(Queue *q) {
return q->front == q->rear;
}
void AddQ(Queue *q, int x) {
q->data[q->rear++] = x;
}
int DeleteQ(Queue *q) {
return q->data[q->front++];
}
int main() {
Queue q;
initQueue(&q);
int n, x;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &x);
AddQ(&q, x);
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
int a = DeleteQ(&q);
int b = DeleteQ(&q);
if (a > b) {
AddQ(&q, b);
AddQ(&q, a);
} else {
AddQ(&q, a);
AddQ(&q, b);
}
}
}
// 输出排序后的队列
while (!isEmpty(&q)) {
printf("%d ", DeleteQ(&q));
}
printf("\n");
return 0;
}
```
思路解析:
利用队列实现排序的思路是冒泡排序。每次取出两个相邻的元素,如果它们的顺序不正确,则交换它们的位置,然后再将它们依次加入队列。这样一轮下来,队列中最后一个元素就是最大的,接下来再重复这个过程,直到所有的元素都排好序。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)