有序字典是表示有序集很有用的抽象数据类型,支持对有序集的搜索、插入、删除、前驱、后继等运算,下面是一个有序字典的实例。 , link[0]指向有序集中第一个元素-value[link[0]]集合最小元素 value[i]是第K个元素,则link[k]存放第k+1个元素的指针 对集合的最大元素value[k]有link[k]=0,而value[0]是大整数 完成以下任务: 根据输入序列创建有序字典,并输出link行 查找给定元素,输出查找结果(Yes or No) 删除给定元素后,输出link行 输入输出格式 输入格式:四行,第一行为正整数n;第二行为n个正整数;第三行为要查找元素,第四行为要删除元素 输出格式:三行,第一行为n+1个正整数,第二行为Yes or No ;第三行为n个正整数 输入输出样例: 输入: 7 2 3 13 1 5 21 8 13 5 输出: 4 2 5 6 1 7 0 3 Yes 4 2 5 6 1 3 0 提示:最大数可设置成32767
时间: 2024-03-10 22:49:40 浏览: 73
电影分类类型字典数据集.txt
以下是Python的实现代码:
```python
n = int(input())
lst = [int(x) for x in input().split()]
search = int(input())
delete = int(input())
link = [0] * (n + 1)
link[0] = 1
value = [0] + lst + [32767]
for i in range(2, n + 2):
p = i - 1
while value[p] > value[i]:
p = link[p]
link[i] = link[p]
link[p] = i
# 输出link行
for i in range(n + 1):
print(link[i], end=' ')
print()
# 查找元素
found = False
p = link[0]
while p != 0:
if value[p] == search:
found = True
break
elif value[p] > search:
p = link[p]
else:
break
if found:
print("Yes")
else:
print("No")
# 删除元素
p = link[0]
while p != 0:
if value[link[p]] == delete:
link[p] = link[link[p]]
break
p = link[p]
# 输出link行
for i in range(n + 1):
print(link[i], end=' ')
print()
```
输入样例:
```
7
2 3 13 1 5 21 8
13
5
```
输出样例:
```
4 2 5 6 1 7 0 3
Yes
4 2 5 6 1 3 0
```
阅读全文