java資料結構 雙向鍊錶

2021-08-22 12:10:57 字數 2238 閱讀 5143

鍊錶是非常常見的一類線性結構的資料結構,每個節點包含有指標域和資料域,常見的包括單項列表、雙向列表、迴圈列表。這篇文章將詳細介紹雙向鍊錶。

本文將介紹雙向鍊錶的插入節點、根據位置插入節點、刪除頭結點、刪除尾節點、刪除指定位置節點,檢視鍊錶元素、檢視頭結點、檢視尾節點、檢視鍊錶長度、判斷鍊錶是否為空。

鍊錶的節點表示:

class node 

}

在建立好鍊錶節點之後下來看鍊錶的構造方法和成員變數,成員方法包括乙個完整鍊錶的頭結點、尾節點以及鍊錶的長度:

class doublelinkedlist 

}

1、插入元素:尾部插入

/**

* 插入元素

*/public void insert(string value)

node node = new node(value);

if (headnode == null) else

length++;

}

2、插入元素:指定位置

/**

* 根據位置插入節點

*/public void insert(int position, string value)

if (position == 0) else

length++;

}

3、刪除元素:刪除頭部

/**

* 刪除鍊錶頭部

*/public node deletehead() else

if (nextnode == null) else

length--;

return firstnode;

}

4、刪除元素:刪除尾部

/**

* 刪除鍊錶尾部

*/public node deletetail() else

if (prenode == null) else

length--;

return lastnode;

}

5、刪除元素:刪除指定位置

/**

* 刪除指定位置節點

*/public node deletebyposition(int position) else else if (position == length - 1) else }}

6、根據位置獲取節點

/**

* 根據位置獲取節點

*/public node getnodebyposition(int position) else

if (current != null) }}

return current;

}

7、檢視所有節點

/**

* 列印所有節點

*/public void displayall()

}

8、檢視頭結點

/**

* 檢視頭結點

*/public node getheadnode()

9、檢視尾節點

/**

* 檢視當尾節點

*/public node gettailnode()

10、獲取鍊錶長度

/**

* 鍊錶長度

*/public int length()

11、判斷鍊錶是否為空

/**

* 判斷鍊錶是否為空

*/public boolean isempty()

資料結構 雙向鍊錶(一)(java)

之前學習了單向鍊錶,沒寫到單向迴圈鍊錶,這裡簡單學習記錄一下,單向非迴圈鍊錶的尾節點元素的next指向的是null,也就是沒有後繼節點,並且頭節點沒有前驅元素,就是一條鍊子,首尾不相連。而單向迴圈鍊錶就是頭節點的前驅元素就是尾節點,尾節點的後繼元素是頭節點,next就不是null了。迴圈鍊錶就是首尾...

JAVA 資料結構之雙向鍊錶

啊,寫完了雙端之後,雙向就好寫多了,重點是改變結點的next指向的時候,一定要一起把previous改了,並且要注意可能在last結點處進行指向修改時存在的的null情況。package linklist 結點定義 class doublynode public void display 寫乙個雙向...

資料結構 鍊錶 雙向鍊錶

注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...