用列表来实现 顺序表的基本操作
"""
用列表来实现 顺序表的基本操作
"""
class seqlist:
def __init__(self, max_space=30):
self.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):
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()