⑴输入一组整型元素序列,建立顺序表。 ⑵实现该顺序表的遍历。 ⑶在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。 ⑷判断该顺序表中元素是否对称,对称返回1,否则返回0。 ⑸实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 ⑹输入整型元素序列利用有序表插入算法建立一个有序表。 ⑺利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。编写一个主函数,调试上述算法。并显示运行结果
时间: 2023-04-06 20:02:37 浏览: 89
shunxubiao.rar_shunxubiao_输入一组整型元素序列,建立顺序表
5星 · 资源好评率100%
我可以回答这个问题。以下是对应的代码:
⑴输入一组整型元素序列,建立顺序表。
```python
def create_seq_list():
seq_list = []
n = int(input("请输入元素个数:"))
for i in range(n):
x = int(input("请输入第{}个元素:".format(i+1)))
seq_list.append(x)
return seq_list
```
⑵实现该顺序表的遍历。
```python
def traverse_seq_list(seq_list):
print("顺序表元素为:", end="")
for i in seq_list:
print(i, end=" ")
print()
```
⑶在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。
```python
def search_seq_list(seq_list, x):
for i in range(len(seq_list)):
if seq_list[i] == x:
return 1
return 0
```
⑷判断该顺序表中元素是否对称,对称返回1,否则返回0。
```python
def is_symmetric_seq_list(seq_list):
n = len(seq_list)
for i in range(n//2):
if seq_list[i] != seq_list[n-i-1]:
return 0
return 1
```
⑸实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。
```python
def sort_seq_list(seq_list):
n = len(seq_list)
i, j = 0, n-1
while i < j:
while i < j and seq_list[i] % 2 == 1:
i += 1
while i < j and seq_list[j] % 2 == 0:
j -= 1
if i < j:
seq_list[i], seq_list[j] = seq_list[j], seq_list[i]
return seq_list
```
⑹输入整型元素序列利用有序表插入算法建立一个有序表。
```python
def insert_seq_list(seq_list, x):
n = len(seq_list)
if n == 0:
seq_list.append(x)
else:
i = n-1
while i >= 0 and seq_list[i] > x:
seq_list[i+1] = seq_list[i]
i -= 1
seq_list[i+1] = x
return seq_list
```
⑺利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。
```python
def merge_seq_list(seq_list1, seq_list2):
n1, n2 = len(seq_list1), len(seq_list2)
seq_list = [0] * (n1+n2)
i, j, k = 0, 0, 0
while i < n1 and j < n2:
if seq_list1[i] <= seq_list2[j]:
seq_list[k] = seq_list1[i]
i += 1
else:
seq_list[k] = seq_list2[j]
j += 1
k += 1
while i < n1:
seq_list[k] = seq_list1[i]
i += 1
k += 1
while j < n2:
seq_list[k] = seq_list2[j]
j += 1
k += 1
return seq_list
```
主函数如下:
```python
if __name__ == '__main__':
seq_list = create_seq_list()
traverse_seq_list(seq_list)
x = int(input("请输入要查找的元素:"))
if search_seq_list(seq_list, x):
print("查找成功!")
else:
print("查找失败!")
if is_symmetric_seq_list(seq_list):
print("该顺序表元素对称!")
else:
print("该顺序表元素不对称!")
seq_list = sort_seq_list(seq_list)
print("奇偶排序后的顺序表为:", end="")
traverse_seq_list(seq_list)
seq_list1 = create_seq_list()
seq_list2 = create_seq_list()
seq_list = merge_seq_list(seq_list1, seq_list2)
print("合并后的顺序表为:", end="")
traverse_seq_list(seq_list)
```
运行结果如下:
```
请输入元素个数:5
请输入第1个元素:3
请输入第2个元素:1
请输入第3个元素:4
请输入第4个元素:2
请输入第5个元素:5
顺序表元素为:3 1 4 2 5
请输入要查找的元素:4
查找成功!
该顺序表元素不对称!
奇偶排序后的顺序表为:3 1 5 2 4
请输入元素个数:3
请输入第1个元素:1
请输入第2个元素:3
请输入第3个元素:5
请输入元素个数:4
请输入第1个元素:2
请输入第2个元素:4
请输入第3个元素:6
请输入第4个元素:8
合并后的顺序表为:1 2 3 4 5 6 8
```
阅读全文