資料結構之鍊錶單向操作總結

2021-09-07 12:46:41 字數 2612 閱讀 5161

鍊錶是資料結構的基礎內容之中的乙個,以下就鍊錶操作中的建立鍊錶、列印鍊錶、求取鍊錶長度、推斷鍊錶是否為空、查詢結點、插入結點、刪除結點、逆轉鍊錶、連線鍊錶、鍊錶結點排序等進行總結。

1.建立表示結點的類,由於鍊錶操作中須要比較結點,因此結點須要實現comparable介面。

public class node implements comparable

//建構函式過載

public node(object data)

public node(object data, node next)

//讀結點資料

public object getdata()

//寫結點資料

public void setdata(object data)

public node getnext()

public void setnext(node next)

@override

public int compareto(node o)

else

else

} }}

2.鍊錶類例如以下。

public class link

/*** 獲取鍊錶長度

* * @return 鍊錶長度

*/public int getlength()

/*** 對以head為頭結點的鍊錶中的各個元素進行列印輸出

* * @param head 鍊錶的頭結點

*/public void printlink()

system.out.println(); }

/*** 用來建立乙個鍊錶,data陣列中的資料相應鍊錶中各個結點的data值

* * @param data 鍊錶中各個結點的資料資訊

* @return 鍊錶的頭結點

*/public node createlink(object data)

int n = 0;

node p = m_headnode;

while(p != null)

p = p.getnext();

} return 0;

} /**

* 刪除鍊錶中第一次出現資料為data的結點

* * @param data 被刪除的結點資料

* @return 鍊錶中存在該結點且刪除成功,返回true。否則,返回false

*/public boolean deletenode(object data)

node p = m_headnode, r = null;

while(p != null)

else

} return false; }

/*** 刪除鍊錶中資料元素為data的全部結點

* * @param data 鍊錶中被刪結點的資料

*/public void deleteallnode(object data)

else

} if(m_headnode.getdata() == data) }

/*** 逆轉鍊錶

*/public void invertlink()

m_headnode = q; }

/*** 將該鍊錶鏈結在headlink之後

* * @param link 被鏈結的鍊錶

* @throws nullpointerexception 假設被鏈結的鍊錶中乙個結點都沒有,丟擲空指標異常

*/public void connectfrom(link link) throws nullpointerexception

else

r.setnext(m_headnode);

m_headnode = link.getheadnode();

m_length += link.getlength();

} }/**

* 在鍊錶尾部追加link鍊錶

* * @param link 須要追加的鍊錶

*/public void connectto(link link)

r.setnext(link.getheadnode());

m_length += link.getlength(); }

/*** 對鍊錶各結點資料從小到大排序

* * @throws nullpointerexception 假設鍊錶中乙個結點都沒有,則丟擲空指標異常

*/public void sort() throws nullpointerexception

else

else

count++;

}} }

/*** 將結點p插入乙個順序排列的長度為length的鍊錶中,使得插入結點p後的鍊錶仍然順序排列

* * @param p 須要插入的結點

* @param length 順序排列的鍊錶的長度

*/private void insert(node p, int length)

else

else

}q.setnext(p);

p.setnext(r);

} }}

資料結構 鍊錶 單向鍊錶

鍊錶 linked list 是由一連串的結構 稱為結點 組成的,其中每個結點都包含指向鏈中下乙個結點的指標。鍊錶中的最後乙個結點包含乙個空指標。鍊錶與陣列不同,陣列的線性序是由陣列的下標決定的,而鍊錶中的順序是由各結點的指標域所決定的。鍊錶可以靈活地表示動態集合。採用鍊錶表示線性表,無論向表中插入...

資料結構 鍊錶 單向鍊錶

單向鍊錶 插入刪除效率比陣列高 建立節點 node class node class list 追加節點 將值變為節點 let newnode new node element 判斷是否為空鍊錶 if this.head null else current.next newnode 長度必須加1 t...

資料結構 鍊錶 單向鍊錶

鍊錶 linked list 是由一連串的結構 稱為結點 組成的,其中每個結點都包含指向鏈中下乙個結點的指標。鍊錶中的最後乙個結點包含乙個空指標。鍊錶與陣列不同,陣列的線性序是由陣列的下標決定的,而鍊錶中的順序是由各結點的指標域所決定的。鍊錶可以靈活地表示動態集合。採用鍊錶表示線性表,無論向表中插入...