Task 1 陣列和鍊錶

2021-09-26 01:31:22 字數 1594 閱讀 7353

【陣列】 實現乙個支援動態擴容的陣列

實現乙個大小固定的有序陣列,支援動態增刪改操作

- 實現兩個有序陣列合併為乙個有序陣列

class sortedarray:

def __init__(self, capacity=15):

"""建構函式

"""self.size = 0 # 陣列已使用大小

self.capacity = capacity # 陣列最大容量

self.data = [''] * self.capacity #陣列初始化

def sortedarrayadd(self, elem):

"""對大小固定的有序陣列進行增加元素

elem:待新增元素

"""# 首元素新增

if self.size == 0:

self.data[0] = elem

self.size += 1

# 陣列已滿就退出

elif self.size == self.capacity:

return

else:

# 倒序遍歷陣列,移動後面的元素,直到找到插入位置

for i in range(self.size - 1, -1, -1):

if elem < self.data[i]:

self.data[i + 1] = self.data[i]

else:

break

# 找到位置進行插入,更新size

self.data[i + 1] = elem

self.size += 1

def delet(self, index):

"""刪除指定位置index的元素

"""# 1.判斷index的合法性

if index < 0 or index > self.size - 1:

print("index不合法,刪除失敗!")

return

# 2.依次挪動 index 後元素

for i in range(index + 1, self.size+1, 1):

self.data[i - 1] = self.data[i]

# 3.更新size

self.size -= 1

測試用例:

array_1 = sortedarray(15)

# 列表增加元素

array_1.sortedarrayadd(1)

array_1.sortedarrayadd(3)

array_1.sortedarrayadd(5)

array_1.sortedarrayadd(7)

# 列表列印

print(array_1.data)

#新增元素

array_1.sortedarrayadd(1.23)

# 列表列印

print(array_1.data)

array_1.sortedarrayadd(4)

print(array_1.data)

#刪除元素

array_1.delet(4)

print(array_1.data)

陣列學習task1

1.利用動態陣列解決資料存放問題 編寫一段 要求輸入乙個整數n,用動態陣列a來存放2 n之間所有5或7的倍數,輸出該陣列。托普利茨矩陣問題 如果乙個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是托普利茨矩陣。給定乙個m x n的矩陣,當且僅當它是托普利茨矩陣時返回true。def ...

程式設計TASK1

1.實現可以動態擴容的陣列 思路 新建陣列的時候,將陣列的容量大小設定為乙個變數,如果陣列容量不夠的時候,可以將原來資料擴大原來的幾倍,進行擴容 也可以直接使用c 中的vector容器,不必考慮原陣列的大小,如果需要增加元素,直接v.pushback 即可 2.將兩個有序陣列合併成乙個有序陣列 思路...

菜鳥學習TASK1

鴿子部第一次task當然不能鴿掉,但是進度很迷,所以打算先對照task把概要大概寫下,然後把發展方案寫下,然後再一點點完善細節。task 了解c語言的幾大資料型別 包括陣列與字串 了解ascii碼和char型別的關係,有興趣的可以進一步了解unicode。基礎資料型別 整型 短整型short,整型i...