線性表就是0個或多個數據元素的有限序列; 元素之間存在順序, 除開頭結尾之外, 每個元素有且僅有一個前驅元素, 後繼元素。線性表的順序存儲叫做順序表,簡單的說就是對數組進行封裝,使得更好的滿足需求。
1. 線性表的順序存儲結構
線性表的順序存儲結構指的是用一段地址連續的內存依次存儲線性表的數據元素
2. 線性表的鏈式存儲結構
鏈表
3. 順序表Python實現
class List:
"""
線性表的順序存儲結構: 順序表
數據成員:
一個數組, 線性表的長度
方法成員:
1. 判斷線性表是否爲空
2. 向線性表任意位置插入元素
3. 查找線性表中是否存在某個值
4. 刪除任意位置的一個元素
5. 獲取列表中任意位置的元素
6. 清空列表
"""
def __init__(self, data):
self.List = data
self.length = self._get_list_length()
def _get_list_length(self): return len(self.List)
def is_empty(self):
# 1. 判斷線性表是否爲空
if len(self.List) == 0: return True
else: return False
def insert(self, i, element):
# 2. 向線性表第i個位置插入元素
length = self.length
if i not in range(length): raise(Exception("線性表長度不足"))
for j in range(i, length):
temp = self.List[j]
self.List[j] = element
element = temp
def locate_ele(self, element):
# 3. 對給定的某個值element定位, 如果存在返回-1
length = self.length
for i in range(length):
if self.List[i] == element:
return i
print("\n線性表中不存在{0}".format(element))
return -1
def delete_i_ele(self, i):
# 4. 刪除第i個位置的元素
length = self.length
if i not in range(length): raise(Exception("線性表長度不足"))
temp = []
for j in range(i, length-1):
temp.append(self.List[j + 1])
self.List = self.List[0:j-1] + temp
def get_i_ele(self, i):
# 5. 獲取第i個位置的元素
length = self.length
if i not in range(length): raise(Exception("線性表長度不足"))
return self.List[i]
def clean(self): self.List = []