資料結構之Array

2021-06-08 04:28:36 字數 2007 閱讀 5747

python資料結構之array

import ctypes

class array:

def __init__(self, size):

assert size > 0, "array size must be > 0 "

self._size = size

pyarraytype = ctypes.py_object * size

self._elements = pyarraytype()

self.clear(none)

def clear(self, value):

for index in range(len(self)):

self._elements[index] = value

def __len__(self):

return self._size

def __getitem__(self, index):

assert index >= 0 and index < len(self), "index must >=0 and <= size"

return self._elements[index]

def __setitem__(self, index, value):

assert index >= 0 and index < len(self), "index must >=0 and <= size"

self._elements[index] = value

def __iter__(self):

return _arrayiterator(self._elements)

class _arrayiterator:

def __init__(self, thearray):

self._arrayref = thearray

self._curndr = 0

def __next__(self):

if self._curndr < len(thearray):

entry = self._arrayref[self._curndr]

sllf._curndr += 1

return entry

else:

raise stopiteration

def __iter__(self):

return self

class array2d :

def __init__(self, numrows, numcols):

self._therows = array(numcols)

for i in range(numcols):

self._therows[i] = array(numcols)

def numrows(self):

return len(self._therows)

def numcols(self):

return len(self._therows[0])

def clear(self, value):

for row in range(self.numrows):

self._therows[row].clear(value)

def __getitem__(self, ndxtuple):

assert len(ndxtuple) == 2, "the tuple must 2"

row = ndxtuple[0]

col = ndxtuple[1]

assert row>=0 and row =0 and col= 0 and row < len(self.numrows) \

and col >= 0 and col < len(self.numcols), \

"row and col is invalidate"

thearray = self._therows[row];

thearray[col] = value

資料結構之(陣列Array)

1.什麼是陣列 2.陣列的優點和缺點 3.案例怎麼實現動態陣列 4.總結 1.什麼是陣列?所謂陣列,是有序的元素序列。若將有限個型別相同的變數的集合命名,那麼這個名稱為陣列名。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。用於區分陣列的各個元素的數字編號稱為下標。陣列是在程...

JS資料結構 Array陣列

陣列array 建立 1.使用方括號 進行建立和初始化 var arr 建立乙個空陣列 var arr 1,2,3 建立乙個包含數字的陣列 2.使用array建構函式 var arr new array 建立空陣列 var arr new array 1,2,3 建立包含數字的陣列 var arr ...

Golang基礎 資料結構 陣列(array)

var 變數名 元素數量 長度 元素型別 例如 var a 5 intvar b 4 int注意 1.陣列是多個相同型別資料的組合,乙個組合一旦宣告或定義,其長度是固定的,不能動態變化 2.陣列中的元素可以是任何資料型別,包括值型別和引用型別,但是不可以混用 3.建立後,如果沒有賦值,預設零值 4....