【陣列】 實現乙個支援動態擴容的陣列
實現乙個大小固定的有序陣列,支援動態增刪改操作
- 實現兩個有序陣列合併為乙個有序陣列
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...