資料結構 煉表表的實現

2021-07-14 21:45:54 字數 2144 閱讀 3792

package list.linkedlist;

/** * 線性表介面list的定義如下

* */

public inte***ce list

package list.linkedlist;

/** * 鍊錶中單個節點類

* */

public class node

public node(object element, node next)

}

package list.linkedlist;

/** * 帶附加表頭節點的迴圈單鏈表

*/public class linklistimplements list

/*** 得到線性表中第pos個元素的值

*/public object value(int pos)

int count = 1;// 計數

node p = head.next;// 指向附加表頭節點

while (count < pos)

return p.element;

} /**

* 向線性表中給定位置上插入乙個元素

* * 1.對引數pos值進行判斷,若pos無效,返回失敗

* * 2.掃瞄得到單鏈表的第pos個節點位置,此掃瞄需要設定前後兩個指標,乙個指向待掃瞄的節點,乙個指向其前驅節點

* * 3.根據插入元素建立乙個新節點,並鏈結到單鏈表中

* * 4.使線性表的長度增加1,返回真

*/public boolean add(object obj, int pos)

int count = 1;

node p = this.head;// p指向頭指標,q的前驅節點

node q = head.next;// q指向附加頭結點

while (count < pos)

// 退出迴圈的時候count = pos,就是要插入的位置

p.next = new node(obj, q);// 在第pos位置插入新節點,新節點next指向q

this.length++;// 線性表的長度加1

return true;

} /**

* 從鍊錶中刪除給定位置的元素

*/public void remove(int pos)

p.next = q.next;

this.length--;

} }/**

* 查詢具有指定值的元素,返回第一次出現的位置

*/public int find(object obj)

if (p == head)

return -1;

return num;

} /**

* 修改鍊錶指定位置的元素的值

*/public boolean modify(object obj, int pos)

p.element = obj;

return true;

} public boolean isempty()

public int size()

/*** 正向遍歷

*/public string forward()

return str;

} /**

* 反向遍歷

*/public string backward()

for (int j = this.length - 1; j >= 0; j--)

return str;

} /**

* 清空鍊錶

資料結構9 鍊錶表示的整數求和

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。乍一看挺簡單,但是這個題目還有一些需要注意的地方,就導致了不斷修改。可以看出,其實這道題的重點在於整數相加,規則就是整數相加的規則,有進製且空位相當於補0.那...

資料結構2 線性表的鍊錶表示和實現

線性表的鍊錶結構,最重要的就是宣告出乙個資料結構,其他的建立,插入什麼的,我覺得就是邏輯問題吧,出錯了再慢慢改唄!寫多了,錯也就少了吧應該!但是有一點,為什麼給鍊錶結點取別名,要取兩個呢?乙個別名,乙個指標,用任何乙個都可以達到相同的目的呀?有懂的,跪求解釋一下啊!include include i...

資料結構之 棧stack 模板類(鍊錶表示)

使用鍊錶表示的棧結構模板類程式如下所示 ifndef h mystack list h define h mystack list h 巨集定義棧的臨界長度,超過此長度之後需要在利用率較低的情況下 空間 define boundary length 2048 include template cla...