1 顺序表

  1. 1.1 创建顺序表
  2. 1.2 查找元素
  3. 1.3 插入元素
  4. 1.4 删除元素
  5. 1.5 完整代码

突发奇想,想用Python把数据结构的知识再过一遍,所以就开始从顺序表从头来一遍,Python内置了一些功能,感觉只需要定义方法调用就好了,或者不想这么干的话,直接调用内置的方法咯。

list 是一种元素个数可变的线性表,采用了分离式技术实现的动态顺序表。可以加入和删除元素,并在各种操作中维持已有元素的顺序(即保序)。

1.1 创建顺序表

1
2
3
4
5
6
# 创建顺序表
def CreateSeqList(self):
element = input("please enter(input #:end):")
while element != '#':
self.seqList.append(int(element))
element = input("please enter(input #:end):")

1.2 查找元素

1
2
3
4
5
6
7
8
9
# 查找顺序表中某一个元素
def FindElement(self):
key = int(input("please enter what you want to find:"))
if key in self.seqList:
keyPosition = self.seqList.index(key)
result = keyPosition
else:
result = "none"
return result

1.3 插入元素

1
2
3
4
5
6
7
# 在指定位置上插入元素
def InsertElement(self):
postion = int(input("请输入要插入的位置:"))
key = int(input("请输入要插入的值:"))
print("插入前顺序:", self.seqList)
self.seqList.insert(postion, key)
print("插入后顺序:", self.seqList)

1.4 删除元素

1
2
3
4
5
6
7
8
9
# 在指定位置上删除元素
def DeleteElement(self):
postion = int(input("请输入要删除元素的位置:"))
print("删除前的顺序表:", self.seqList)
if postion < len(self.seqList) and postion >= 0:
del self.seqList[postion]
return self.seqList
else:
print("不存在啊老铁,删除个毛线啊")

1.5 完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
class SequenceList:

# 初始化
def __init__(self):
self.seqList = [] # 初始化一个空表

# 创建顺序表
def CreateSeqList(self):
element = input("please enter(input #:end):")
while element != '#':
self.seqList.append(int(element))
element = input("please enter(input #:end):")

# 查找顺序表中某一个元素
def FindElement(self):
key = int(input("please enter what you want to find:"))
if key in self.seqList:
keyPosition = self.seqList.index(key)
result = keyPosition
else:
result = "none"
return result

# 在指定位置上插入元素
def InsertElement(self):
postion = int(input("请输入要插入的位置:"))
key = int(input("请输入要插入的值:"))
print("插入前顺序:", self.seqList)
self.seqList.insert(postion, key)
print("插入后顺序:", self.seqList)

# 在指定位置上删除元素
def DeleteElement(self):
postion = int(input("请输入要删除元素的位置:"))
print("删除前的顺序表:", self.seqList)
if postion < len(self.seqList) and postion >= 0:
del self.seqList[postion]
return self.seqList
else:
print("不存在啊老铁,删除个毛线啊")

# 遍历顺序表元素
def TraverseElement(self):
for i in range(len(self.seqList)):
print(self.seqList[i], end =' ')

# 判空
def IsEmpty(self):
return len(self.seqList) == 0

# 销毁顺序表
def DestorySeqList(self):
print("销毁前顺序表:", self.seqList)
self.__init__()
print("销毁后顺序表:", self.seqList)


# 测试
if __name__ == '__main__':
list = SequenceList()
list.CreateSeqList()
print(list.seqList)
print(list.FindElement())
list.InsertElement()
list.DeleteElement()
list.TraverseElement()
list.IsEmpty()
list.DestorySeqList()

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:1 顺序表

字数:711

本文作者:Rich Fan

发布时间:2023-09-25, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2023/09/24/python/Python%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1-%E9%A1%BA%E5%BA%8F%E8%A1%A8/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。