编写一个程序,输入 n(由用户输入)个 10 以内的数,每输入 i(0≤i≤9),就把它插入到第 i 号队列中。最后把 10 个队中非空队列,按队列号从小到大的顺序串接成一条链,并输出该链的所有元素。
时间: 2023-09-18 12:05:33 浏览: 126
每输入i(0=<i<=9).插入到第i号队列中.输出非空队列所有元素
### 回答1:
以下是Python代码实现:
n = int(input("请输入数字个数:"))
queues = [[] for i in range(10)] # 初始化10个队列
for i in range(n):
num = int(input("请输入一个10以内的数字:"))
queues[num].append(num) # 将数字插入对应的队列中
result = []
for queue in queues:
if queue: # 如果队列非空
result.extend(queue) # 将队列中的元素加入结果列表中
print(result) # 输出结果列表
### 回答2:
编写这个程序可以使用数组来表示10个队列。首先,我们需要获取用户输入的n,即要输入的数的个数。
然后,使用一个长度为10的数组来表示10个队列。初始化这个数组,使每个队列为空。
接下来,使用一个for循环,循环n次,每次循环获取用户输入的数i,将这个数插入到第i号队列的末尾。
循环结束后,再次使用一个for循环,循环10次,分别输出每个队列中的元素。按照队列号从小到大的顺序输出队列中的元素。
具体的代码如下所示:
```python
# 获取用户输入的n
n = int(input("请输入数字的个数:"))
# 初始化指定长度为10的数组,表示10个队列
queues = [[] for _ in range(10)]
# 循环n次,获取用户输入的数并插入到相应的队列中
for _ in range(n):
i = int(input("请输入一个10以内的数:"))
queues[i].append(i)
# 循环10次,按照队列号从小到大的顺序输出队列中的元素
for i in range(10):
if len(queues[i]) != 0:
print("第", i, "号队列的元素为:", queues[i])
```
对于输入样例,例如n为5,用户依次输入的数为4、6、2、0、3,程序输出的结果为:
```
第 0 号队列的元素为: [0]
第 2 号队列的元素为: [2]
第 3 号队列的元素为: [3]
第 4 号队列的元素为: [4]
第 6 号队列的元素为: [6]
```
### 回答3:
可以使用多个队列来实现该程序。首先根据用户输入的n创建10个队列,即用一个长度为10的列表来存放这些队列。然后通过一个循环,接收用户输入的10以内的数,并将其插入到第i号队列中,直到接收完n个数为止。接下来进行遍历,将非空队列按照队列号从小到大的顺序串接成一条链,并输出链中的所有元素。
具体的实现代码如下:
``` python
n = int(input("请输入数的个数:"))
queues = [[] for _ in range(10)] # 创建10个队列
for _ in range(n):
num = int(input("请输入一个10以内的整数:"))
i = num % 10 # 计算元素应该插入的队列号
queues[i].append(num) # 将元素插入到第i号队列
result = [] # 存放链的所有元素
for q in queues:
if q:
result.extend(q) # 将非空队列中的元素加入到链中
print("链的所有元素为:", result)
```
这段代码首先接收用户输入的数的个数n,然后创建一个包含10个空的队列的列表queues。接下来通过循环n次来接收用户输入的数,并将每个数根据其模10的结果插入到对应的队列中。最后遍历所有的队列,将非空队列中的元素加入到结果链中。最后输出链中的所有元素。
例如,当用户输入n为6,数的顺序为3, 1, 5, 7, 8, 2时,程序会输出链的所有元素为[1, 2, 3, 5, 7, 8]。
阅读全文