用列表来实现 顺序表的基本操作
"""
用列表来实现 顺序表的基本操作
"""
class seqlist: # 创建一个顺序表
def __init__(self, max_space=30):
self.max_space = max_space # max_space 最大空间
self.sl = max_space * [0] # 申请一个列表数组
self.length = 0 # 目前实际元素的个数
"""
# 追加元素
1. 在后面追加元素
"""
def appenddata(self, data):
if self.length == self.max_space:
print("顺序表已经满,不能再添加元素")
else:
self.sl[self.length] = data
self.length = self.length + 1
def printdata(self): # 遍历操作
for i in range(self.length):
print(self.sl[i])
print(self.sl[i], end=' ')
print('\n')
"""
插入元素的判断 条件 1. 顺序表是否满了 ,2.插入的位置是否合法,合法则插入
"""
def insertdata(self, index, data): # 插入元素的操作 在 index 位置插入 data 元素
if self.length == self.max_space:
print("顺序表满了")
else:
if index < 0 or index > self.length:
print("位置不合法")
else:
"""
如果合法开始进行元素的移动, 需要考虑到具体的细节的情况
"""
# 从最后一个元素进行 移动 陆续的移动通过循环语句进行移动
i = self.length - 1
while i >= index:
# 最后一个元素赋值给一个新的下标元素
self.sl[i + 1] = self.sl[i]
i = i - 1
""" index 位置的元素位置已经空出来,则进行元素的插入"""
self.sl[index] = data
self.length = self.length + 1
"""
顺序表的删除操作
一. 按照下标或者索引进行元素的删除操作
1. 判断列表是否为空 判断删除元素的下标是否合法
2. 进行元素的删除操作 ,对删除的元素进行移动 【对后面的元素进行移动操作】
"""
def deleteindex(self, index): # 按照索引删除元素
if self.length == 0:
print('顺序表是空的')
else:
if index < 0 or index >= self.length:
print("位置不合法")
else:
i = index
while i < self.length:
self.sl[i] = self.sl[i + 1]
self.length = self.length - 1
"""
按值查找元素的操作
1. 进行元素遍历操作,把元素和待查找的值进行比较操作
2. 查找也分为两种情况, 一种情况是查找到了,进行退出操作,返回元素的下标操作
另一种情况是查找到元素的末尾也没有找到
"""
def searchdata(self, data): # 按值来查找元素
for i in range(self.length):
if (self.sl[i] == data): #
break
if i == self.length:
print("没找到这个元素")
return -1
else:
print("找到了")
return i
"""
按值进行删除元素的操作
"""
def deletedata(self, data): # 按值删除元素
i = self.searchdata(data)
if i != -1:
self.deleteindex(i)
s = seqlist()
num = int(input("请输入追加元素的个数: "))
for i in range(num):
data = input("请输入追加的元素: ")
s.appenddata(data)
s.printdata()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77030.html