# 顺序表
class ContiguousList(object):
def __init__(self, max=10):
self.max = max
self.num = 0
self.data = [None] * self.max
def is_empty(self):
# 判空
return self.num == 0
def is_full(self):
# 判满
return self.num is self.max
def length(self):
if self.is_empty():
return 0
else:
return self.num
def travel(self):
for i in range(0, self.num):
print(self.data[i], end=' ')
print()
def add(self, item):
for i in range(self.num, 0, -1):
self.data[i] = self.data[i-1]
self.data[0] = item
self.num += 1
def append(self, item):
self.data[self.num] = item
self.num += 1
def insert(self, pos, item):
if pos <= 0:
return self.add(item)
elif pos > self.num :
return self.append(item)
else:
for i in range(self.num, pos, -1):
self.data[i] = self.data[i-1]
self.data[pos] = item
self.num += 1
def delete(self, pos):
# 删除元素,下标
if not isinstance(pos, int):
print(None)
if pos < 0 or pos >= self.num:
print(None)
for j in range(pos, self.num):
if j == self.num - 1:
self.data[j] = None
else:
self.data[j] = self.data[j + 1]
self.num -= 1
def remove_all(self,item):
# 删除所有等值
for i in range(self.num):
if item == self.data[i]:
self.remove(item)
self.remove_all(item)
def remove(self, value):
# 删除元素,值
for i in range(self.num):
if self.data[i] == value:
self.delete(i)
if __name__ == '__main__':
cl = ContiguousList()
print('is_empty:', cl.is_empty())
print('is_full:', cl.is_full())
print('length:', cl.length())
cl.travel()
cl.add(1)
cl.add(0)
cl.append(2)
cl.travel()
cl.append(3)
cl.append(4)
cl.travel()
cl.remove(2)
cl.delete(1)
cl.travel()
cl.delete(4)
print(cl.is_empty())
print(cl.length())
print(cl.is_full())
python 线性表——顺序表
最新推荐文章于 2025-03-31 20:25:37 发布