顺序表公共元素查找 【问题描述】给定两个顺序表,编写算法找出两表的公共结点。 【输入形式】 四行: 第一行:一个数字(第一个顺序表中的元素个数) 第二行:第一个顺序表中各个结点的值 第三行:一个数字(第二个顺序表中的元素个数) 第四行:第二个顺序表中各个结点的值 【输出形式】 两行: 第一行:两个单链表的公共元素个数 第二行:依次打印输出各个公共元素
时间: 2024-02-15 07:01:30 浏览: 20
好的,以下是我的回答:
```python
# 定义顺序表类
class SqList:
def __init__(self, lst):
self.data = lst
self.length = len(lst)
# 查找两个顺序表的公共元素
def find_common_elements(l1, l2):
p1, p2 = 0, 0 # 两个顺序表的指针
common_elements = [] # 公共元素列表
while p1 < l1.length and p2 < l2.length:
if l1.data[p1] == l2.data[p2]:
common_elements.append(l1.data[p1])
p1 += 1
p2 += 1
elif l1.data[p1] < l2.data[p2]:
p1 += 1
else:
p2 += 1
return common_elements
# 读取输入
n1 = int(input())
lst1 = list(map(int, input().split()))
n2 = int(input())
lst2 = list(map(int, input().split()))
# 创建两个顺序表
L1 = SqList(lst1)
L2 = SqList(lst2)
# 查找公共元素
common_elements = find_common_elements(L1, L2)
# 输出结果
print(len(common_elements))
print(*common_elements)
```
这段代码实现了一个查找两个顺序表公共元素的函数 `find_common_elements`,并且根据题目要求,从输入中读取两个顺序表的元素并创建两个顺序表对象 `L1` 和 `L2`,最后调用该函数查找公共元素并输出结果。