資料結構之雙向鍊錶

2021-10-01 20:49:20 字數 1543 閱讀 8442

單向鍊錶的缺點分析:

1)單向鍊錶,查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢.

2)單向鍊錶不能自我刪除,需要靠輔助節點,而雙向鍊錶,則可以自我刪除,所以前面我們單鏈表刪除節點,總是找到temp,remp是待刪除節點的前乙個節點.

(1)遍歷:遍歷和單鏈表一樣,只是可以向前,也可以向後.

(2)新增(新增到雙向鍊錶的最後):

1):先找到雙向鍊錶的最後乙個節點.

2):temp.next = newheronode

3):newheronode.pre = temp

(3)修改思路和原理的單向鍊錶一樣.

(4)刪除

1)因為是雙向鍊錶,因此,我們可以實現自我刪除某個節點

2)直接找到要刪除的這個節點

3)temp.pre.next = temp.next

4)temp.next.pre = temp.pre

接下來我們**實現:

package com.datastructure.com.datastructure.linklist;

public class doublelinkedlistdemo

}class doublelinkedlist

//遍歷鍊錶

public void showdoublelist()

heronode2 temp = head.next;

while (true)

system.out.println(temp);

temp = temp.next;}}

//新增乙個節點到最後

public void add(heronode2 node)

temp = temp.next;

}temp.next = node;

node.pre = temp;

}//修改乙個節點

public void update(heronode2 node)

heronode2 temp = head;

boolean flag = false;

while (true)

if(temp.no == node.no)

temp = temp.next;

}if(flag)else

}//刪除乙個節點

public void delete(int no)

heronode2 temp = head.next;

boolean flag = false;

while (true)

if(temp.no == no)

temp = temp.next;

}if(flag)

}else

}}class heronode2

@override

public string tostring() ';}}

資料結構之雙向鍊錶

簡述 指標域有乙個指標 而言,占用資源更大,但相應的 雙向鍊錶遍歷的時候只需要乙個指標就可以,而且 只有得到其中任何乙個節點就是得到整個鍊錶,單向鍊錶必須得到他的頭節點,才能遍歷整個鍊錶,而且得有兩個指標。實現 bothwaylinklist.h ifndef mymodule h define m...

資料結構之 雙向鍊錶

單鏈表的結點都只有乙個指向下乙個結點的指標。單鏈表的資料元素無法直接訪問其前驅元素。建立鍊錶 銷毀鍊錶 獲取鍊錶長度 清空鍊錶 獲取第pos個元素操作 插入元素到位置pos 刪除位置pos處的元素 dlinklist dlinklist creat 建立乙個鍊錶 void dlinklist des...

資料結構之雙向鍊錶

雙向鍊錶宛如一列火車,剛發明的時候只有乙個頭,如果它的行駛路線為 a b c d e f g h i j k a 這個時候有一批貨物需要從k運到j,那麼它的運輸路線一定是 k a b c d e f g h i j 所以後來火車就有了兩個頭,由此可見雙向鍊錶的重要性!雙向鍊錶 在單鏈表結點上增添了乙...