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...