單鏈表的方法和測試

2021-10-21 03:05:17 字數 2113 閱讀 3946

單鏈表的測試

/**

* 單鏈表的使用:

* 單鏈表由節點組成

* @author wgsstart

* @creat 2021-03-04 16:24

*/public

class

test

}

單鏈表的方法

/**

* this代表當前物件的引用。

* 引用:屬性/方法

* 例項成員變數

* 靜態成員變數

* this()

* this.data

* this.func()

* @author wgsstart

* @creat 2021-03-04 17:09

*/class

node

}public

class

mylinkedlist

node.next =

this

.head;

this

.head = node;

}//列印單鏈表

public

void

display()

}//尾插法

public

void

addlast

(int data)

node cur =

this

.head;

while

(cur.next!=null )

cur.next = node;

}//查詢是否包含關鍵字key是否在單鏈表當中

public

boolean

contains

(int key)

cur = cur.next;

}return

false;}

//得到單鏈表的長度

public

intsize()

return count;

}//任意位置插入,第乙個資料節點為0號下標

public

void

addindex

(int index,

int data)

if(index ==

this

.size()

)//先找到 index位置的前乙個節點的位址

node cur =

searchindex

(index)

;//進行插入

node node =

newnode

(data)

; node.next = cur.next;

cur.next = node;

}private node searchindex

(int index)

node cur =

this

.head;

//index-1

while

(index-1!=

0)return cur;

}private node searchprev

(int key)

else

}return null;

}//刪除第一次出現關鍵字為key的節點

public

void

remove

(int key)if(

this

.head.data == key)

node prev =

searchprev

(key)

;//來找當前key的前驅

if(prev == null)

node del = prev.next;

prev.next = del.next;

}//刪除所有值為key的節點

public

void

removeallkey

(int key)

else}if

(this

.head.data == key)

}public

void

clear()

}

單鏈表的查詢方法

單鏈表查詢操作,按序號查詢和按值查詢 先尾插法建立乙個空鍊錶 include includetypedef int elem typedef struct lnode lnode,list list creat list l 需要熟練 r next null return l 接下來按序號查詢 vo...

反轉單鏈表的方法

方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。比較浪費空間 時間複雜度 o n 空間複雜度 o n actlist reverselist2 actlist head head p 最後q必然指向null,所以返回了p作為新的頭指標 return head 複製 方法3 從第2個節點到...

單鏈表和雙鏈表

單鏈表 單鏈表只有乙個指向下一結點的指標,也就是只能next 雙鏈表 雙鏈表除了有乙個指向下一結點的指標外,還有乙個指向前一結點的指標,可以通過prev 快速找到前一結點,顧名思義,單鏈表只能單向讀取 為什麼市場上單鏈表的使用多餘雙鏈表呢?從儲存結構來看,每個雙鏈表的節點要比單鏈表的節點多乙個指標,...