資料結構實現分享(1)

2022-09-01 18:48:09 字數 3346 閱讀 7494

1.陣列實現可以擴容的順序表

1

/**2

* 利用陣列實現可以自動擴容的順序表,順序表下標從1開始

3* 對於線性表來說,插入的新的資料不能使表的中間出現空隙,所以插入位置在1-length之間4*

@authorzw5

* @param6*

@version

1.17*/8

public

class list

2324

public list(int

n) else32}

3334

public

boolean add(t obj, int

pos)

40//

list容量不足,對陣列擴容

41if (length ==listarray.length)

46 listarray =p;47}

48for (int i = length; i >= pos; i--)

51 listarray[pos - 1] =obj;

52 length++;

53return

true;54

}5556public object delete(int

pos) else

if (pos < 1 || pos >length)

64 t x = listarray[pos - 1];

65for (int i = pos; i <= length; i++)

68 length--;

69return

x;70}71

72public

intfind(object obj) else81}

82return -1;83}

84}8586

public object get(int

pos) else

if (pos < 1 || pos >length)

94return listarray[pos - 1];95}

9697

public

boolean modify(t obj, int

pos) else

if (pos < 1 || pos >length)

105 listarray[pos - 1] =obj;

106return

true

;107

}108

109public

boolean

isempty()

112113

public

intsize()

117118

public

void

nextorder()

122123

}124

125public

void

clear()

129130 }

2.鍊錶實現順序表

/*

* 因此,無論增刪改都需要從第乙個節點開始對鍊錶進行依次查詢,找到需要操作的節點位址(引用)

*/public

class linklist

/*獲取頭結點位址

*/public nodegethead()

/*向鍊錶中插入乙個元素

*/public

boolean insert(t obj, int

pos)

int num = 1;

node

p =head;

node

q =head.next;

/** 演算法總結: 1.利用p q來表示兩個相鄰鍊錶,while遍歷到要插入的位置。

* 2.將前一節點p的next引用到要插入的元素,利用插入節點的構造方法將next引用到q節點

*/while (num p.next = new node(q, obj);

length++;

return

true

; }

/*刪除鍊錶中的乙個元素

*/public t remove(int

pos)

else

if (pos < 1 || pos > length + 1)

else

p.next =q.next;

length--;

return

q.data;}}

/*獲取鍊錶中的乙個元素

*/public t get(int

pos)

else

if (pos < 1 || pos > length + 1)

else

return

q.data;}}

/*在鍊錶中查詢某個元素

*/public

intfind(t obj)

else

}return -1;}}

/*在鍊錶中更新某個元素

*/public

boolean modify(t obj, int

pos)

else

if (pos < 1 || pos > length + 1)

int num = 1;

node

q =head.next;

while (num q.data =obj;

return

true

; }

/*判斷鍊錶是否為空

*/public

boolean

empty()

/*求煉表中的元素數

*/public

intsize()

/*遍歷表中所有元素並向控制台輸出

*/public

void

printall()

}/*銷毀鍊錶

*/public

void

clear()

}

鍊錶節點的實現:

/**

* 鍊錶的節點類 */

public

class node

/*節點的構造方法,引數n初始化引用,引數data初始化資料

*/public node(noden, t data)

/*獲取節點類資料的方法

*/public

t getdata()

/*獲取節點引用的方法

*/public nodegetnext()

}

資料結構 1

線性結構 線性表,棧,佇列,串。線性結構特點 結構中的資料元素之間存在一對一的線性關係。線性表 線性表 最簡單 最基本 最常用的資料結構。操作不受限定。順序表 用順序儲存方式的線性表叫順序表。線性表的順序儲存方式 在記憶體中用一塊位址連續的空間一次存放線性表的資料元素。特點 表中相鄰的資料元素在記憶...

資料結構 1

資料結構是研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作的一門課程。具體地說,資料結構指的是資料元素之間的邏輯結構 儲存結構以其資料的抽象運算,即按某種邏輯關係組織起來的一組資料,再按一定的儲存表示方式把它們儲存在計算機的儲存器中,並在這些資料上定義乙個運算的集合.資料結構 ...

資料結構 1

1.基本資料組織和資料處理方法 2.資料結構的邏輯特性和儲存結構設計 演算法設計 基本資料結構 線性表,陣列,棧,樹,佇列,二叉樹,串,圖 3.資料如何表示 選擇合適的資料結構 資料運算如何實現 資料運算如何高效實現 4.資料結構基本概念,基本原理和基本方法 練習 優化 5.資料 所有能夠輸入到計算...