1. 实验目的
考察能否正确实现顺序查找,深入理解顺序查找算法。
2. 实验介绍
熟练掌握顺序表和有序表的查找方法及其实现,掌握二叉排序树的插入和查找算法及其实现,了解平衡二叉树、B-树和B+树的各种操作。熟练掌握散列表的构造方法、处理冲突的方法,深刻理散列表与其他结构的表的实质性的差别,了解各种散列函数的特点。掌握描述折半查找过程的判定树的构造方法,以及按定义计算各种查找方法在等概率情况下查找成功时的平均查找长度。
3.实验内容
创建名为 ex070501_01.py 的文件,在其中编写一个静态查找表的类,该类必须包
含静态查找表的基本操作,同时还要实现顺序查找算法。通过以下步骤测试上述实现是
否正确。
(1)初始化一个静态查找表 StaticTable。 (2)判断 StaticTable 是否为空。
(3)将关键字为(1,3,5,9,16,25)的序列依次存入表 StaticTable 中。
(4)遍历 StaticTable,并输出所有元素。
(5)采用顺序查找算法查找关键字为 9 的数据元素。
4. 实验步骤与代码
class SequenceSearch:
def __init__(self):
self.StatcTable = []
def found(self):
Element = input('请输入要插入的元素(回车继续,#结束):')
while Element != '#':
self.StatcTable.append(Element)
Element = input('请输入要插入的元素:')
def isempty(self):
if self.StatcTable == []:
return True
else:
return False
def traver(self):
for i in self.StatcTable:
print(i,end=' ')
print()
def search(self):
info = input('请输入要查找的元素:')
ip = 1
for i in self.StatcTable:
if i == info:
print(info,'位于第',ip,'个位置。')
else:
ip += 1
if __name__=='__main__':
S = SequenceSearch()
print('开始初始化......')
S.__init__()
print('初始化完成......')
print('判断列表是否为空:',end=' ')
if S.isempty:
print('列表为空')
else:
print('列表非空')
print('开始创建新列表')
S.found()
print('遍历输出列表:',end=' ')
S.traver()
print('开始查找')
S.search()
5.实验结果