線性表
- 線性表需要相同的數(shù)據(jù)類型
- 線性表的處理方式都是先取代,后目的。比如刪除鏈?zhǔn)骄€性表的某個(gè)節(jié)點(diǎn)的流程,先取代
delete point使它的前驅(qū)節(jié)點(diǎn)指向它的后繼節(jié)點(diǎn),這樣就完成了取代。然后再free()掉這個(gè)節(jié)點(diǎn),這樣就達(dá)到了目的。再比如加入某個(gè)節(jié)點(diǎn),先使add point指向add index要加入處的后繼節(jié)點(diǎn),這即取代。然后再使add index的前驅(qū)節(jié)點(diǎn)指向add point。
解題步驟:
- 先考慮特殊情況,邊緣值
- 進(jìn)入退出循環(huán)時(shí)需要找準(zhǔn)條件,考慮清楚退出循環(huán)時(shí)所需要的變量的終值是多少,方便使用
- 審視全局,帶正確的值判斷是否AC
線性表的操作
線性表
public class ArrayList_ {
/**
* 線性表最大容量
*/
private static final int MAX_SIZE = 100;
/**
* 線性表value容器
*/
public int[] arraylist = new int[MAX_SIZE];
/**
* 線性表當(dāng)前長(zhǎng)度
*/
public int arrayListLength;
}
獲取鏈表中的第index個(gè)元素
/**
* 獲取鏈表中的第index個(gè)元素
*
* @param arrayList_
* @param index
* @return
*/
public static int get(ArrayList_ arrayList_, int index) {
if (arrayList_.arrayListLength == 0 || index > MAX_SIZE || index < 1) {
return 0;
}
return arrayList_.arraylist[index - 1];
}
在第index的位置插入元素value
/**
* 在第index的位置插入元素value
*
* @param arrayList_
* @param index
* @param value
* @return
*/
public static int insert(ArrayList_ arrayList_, int index, int value) {
if (arrayList_.arrayListLength >= MAX_SIZE || index > arrayList_.arrayListLength || index < 1) {
return 0;
}
if (index <= arrayList_.arrayListLength) {
// 插入到表已有元素中
// 從線性表的最后一個(gè)元素到當(dāng)前插入擠出的元素,依次向后移一位
for (int i = arrayList_.arrayListLength - 1; i >= index - 1; i--) {
arrayList_.arraylist[i + 1] = arrayList_.arraylist[i];
}
}
arrayList_.arraylist[index - 1] = value;
arrayList_.arrayListLength++;
return 1;
}
刪除單鏈表第index個(gè)的元素
/**
* 刪除單鏈表第index個(gè)的元素
*
* @param arrayList_
* @param index
* @return 返回刪除的元素的value
*/
public static int remove(ArrayList_ arrayList_, int index) {
if (index > arrayList_.arrayListLength || index < 1 || arrayList_.arrayListLength == 0) {
return 0;
}
// 刪除的元素不在線性表尾
if (index < arrayList_.arrayListLength) {
// 后續(xù)的值往前頂
for (int i = index - 1; i < arrayList_.arrayListLength - 1; i++) {
arrayList_.arraylist[i] = arrayList_.arraylist[i + 1];
}
}
arrayList_.arrayListLength--;
return 1;
}
很基礎(chǔ),沒什么難度,全程閉著眼寫,嘿嘿