跟小刀學 資料結構 雙向鍊錶

2021-07-31 08:33:17 字數 1819 閱讀 5175

廢話不多說話了直接上**

先建立乙個結點類

/**

* 雙向鍊錶需要的節點

*@author administrator

* */

public

class

link

public

void

display()

}

在建立雙向鍊錶的實現

public

class

doublylink

/*** 從頭節點開始新增

*@param d

*/public

void

insertfirst(long d)else

newlink.next =first;//新節點的next指向 原來的第乙個

first =newlink;//第乙個變成新的

}public

void

insertlast(long d)else

last = newlink;

}public link deletefirst()else

first = first.next;

return temp;

}public link deletelast()else

last =last.provious;

return temp;

}public

boolean

insertafter(long key,long data)

}if(current == last)else

newlink.provious = current;

current.next= newlink;

return

true;

}public link deletekey(long key)

}//1,先處理next 的引用

if(current == first)else

// 在處理provious 的引用

if(current == last)else

return current;

}public

void

displayforward()

system.out.println();

}public

void

displaybackward()

system.out.println();

}public

boolean

isempty()

}

在建立測試類:

public static void main(string args)
測試結果如下:

first

--->last:60 40 20 11 33 55

last

--->first:55 33 11 20 40 60

first

--->last:40 20 11 33

first

--->last:40 20 33

first

--->last:40 20 25 33 77

first

--->last:20 25 33 77

對雙向鍊錶學的不好的同學。寫起來可能比較費勁。我也是一邊畫圖,一邊理解。現在記下來以便以後加強記憶。

資料結構 鍊錶 雙向鍊錶

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

資料結構 雙向鍊錶

前幾天寫了乙個單向鍊錶,今天參考自己單向鍊錶改寫了乙個雙向非迴圈鍊錶,下面只討論雙向非迴圈鍊錶。雙向非迴圈鍊錶有如下特點 一 雙向鍊錶每個結點都有乙個前驅指標和後驅指標 當然頭結點和尾結點除外 二 雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。三 頭結點只有後驅指標沒有前驅...

資料結構 雙向鍊錶

單鏈表的單向性 只能從頭結點開始高效訪問鍊錶中的資料元素。單鏈表還存在另乙個缺陷 逆序訪問時候的效率極低。如下 linklistlist for int i 0 i 5 i for int i list.length 1 i 0 i 根據大o推算法可以得出乙個for迴圈的時間複雜度為o n get ...