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.資料 所有能夠輸入到計算...