搞懂資料結構 動態陣列

2021-10-07 02:59:05 字數 3435 閱讀 5112

什麼是陣列

陣列是一種順序儲存線性表,所有元素的儲存的記憶體位址都是連續的。

動態陣列

在很多程式語言中,陣列建立後是容量是固定的,但是實際開發中,我們更希望能動態的改變陣列的容量;

介面設計

int

size()

;// 元素的數量

boolean

isempty()

;// 是否為空

boolean contains (

int element)

;// 是否包含某個元素

void add (

int element)

;// 新增元素到最後面

int get (

int index)

;// 返回index位置對應的元素

int set (

int index,

int element)

;// 設定index位置的元素

void add (

int index,

int element)

;// 往index位置新增元素

int remove (

int index)

;// 刪除index位置對應的元素

int indexof (

int element)

;// 檢視元素的位置

void clear ();

// 清除所有元素

void

rangecheck

(int index)

;//檢測index是否越界

void

ensurecapacity

(int capacity); //add方法的時候進行擴容

**實現

新增方法:

//新增元素到最後面

public

void

add(

int element)

//指定位置新增元素

public

void

add(

int index,

int element)

elements[index]

= element;

size++

;}

刪除方法:

//刪除指定索引的元素

public

intremove

(int index)

size--

;return old;

}//清空元素

public

void

clear()

修改方法:

//修改元素

public

intset

(int index,

int element)

檢視方法:

//檢視index的元素

public

intget

(int index)

//檢視元素索引

public

intindexof

(int element)

return element_not_find;

}//是否包含某個元素

public

boolean

contain

(int element)

總的**

//方法總結:、

// 元素個數相關:數量,是否為空

// 增刪改查

public

class

arraylist

public

arraylist

(int cacacity)

//元素的數量

public

intsize()

//是否為空

public

boolean

isempty()

//新增元素到最後面

public

void

add(

int element)

//指定位置新增元素

public

void

add(

int index,

int element)

elements[index]

= element;

size++;}

//刪除指定索引的元素

public

intremove

(int index)

size--

;return old;

}//清空元素

public

void

clear()

//修改元素

public

intset

(int index,

int element)

//檢視index的元素

public

intget

(int index)

//檢視元素索引

public

intindexof

(int element)

return element_not_find;

}//是否包含某個元素

public

boolean

contain

(int element)

/* * 擴容操作

*/private

void

ensurecapacity

(int capacity)

elements = newelements;

}// 下標越界丟擲的異常

private

void

outofbounds

(int index)

// 檢查下標越界(不可訪問或刪除size位置)

private

void

rangecheck

(int index)

}// 檢查add()的下標越界(可以在size位置新增)

private

void

rangecheckforadd

(int index)

}@override

public string tostring()

string.

("]");

return string.

tostring()

;}}

注:僅用於學習交流

搞懂資料結構 樹結構

樹結構是一種非常重要的非線性結構,反應了資料元素之間的層次關係和分支關係。樹的表示方法 根據樹中節點的各子樹從左到右是否有次序,能否交換分為 二叉樹並非是樹的特殊情形,它和度數為2的有序樹是兩種不同的資料結構。二叉樹的儲存結構可分為順序儲存和鏈式儲存。順序儲存 二叉樹的順序儲存結構就是把二叉樹的所有...

資料結構 動態陣列

int a newint 2 3 定義乙個兩行雜湊的陣列 靜態陣列 int b newint 2 定義行數,列數可變 陣列的儲存 int a newint 10 一維陣列 int a newint 2 3 二維陣列 int a newint 2 3,4 三維陣列 陣列儲存的特點靜態陣列 int a ...

搞懂資料結構 棧和佇列

棧是一種特殊的線性表 被限制的線性表 只允許在表的一端進行刪除和插入運算。能夠進行運算的一端稱為棧頂,另一端稱為棧底。每次刪除元素稱為彈棧pop,每次插入元素稱為壓棧push。棧按照儲存結構又分為順序棧和鏈式棧。棧是一種特殊的線性表,線性表按照儲存結構分為順序儲存和鏈式儲存。同樣,棧根據儲存結構分為...