無頭單向非鍊錶的實現

2021-10-04 12:12:17 字數 1733 閱讀 4532

//節點類

class

node

}//單鏈表

public

class

mylinedlist

//頭插法

public

void

addfirst

(int data)

node.next =

this

.head;

this

.head = node;

}//尾插法

public

void

addlast

(int data)

node cur =

this

.head;

while

(cur.next!= null)

//cur指向的節點就是尾巴

cur.next = node;

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

public

void

addindex

(int index,

int data)

if(index ==0)

if(index ==

size()

)//1、讓乙個引用 先走index-1 步

node prev =

findindex

(index)

;//2、先綁後面

node node =

newnode

(data)

; node.next = prev.next;

prev.next = node;

}//走index-1步

private node findindex

(int index)

return cur;

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

public

boolean

contains

(int key)

cur = cur.next;

}return

false;}

private node findprev

(int key)

prev = prev.next;

}return null;

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

public

void

remove

(int key)

node prev =

findprev

(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

intsize()

return count;

}public

void

display()

system.out.

println()

;}public

void

clear()

}

無頭單向非迴圈鍊錶

首先建立乙個標頭檔案存放所需要的函式功能的宣告slist.h ifndef slist h define slist h include include include include typedef int sltdatatype typedef struct slistnodeslistnode...

無頭單向非迴圈鍊錶增刪查改實現

無頭單向非迴圈鍊錶 結構簡單,一般不會單獨用來存資料。實際中更多的是作為其他資料結構的子結構,如雜湊表 圖的領接等等。下面,我們來看看無頭單向非迴圈鍊錶增刪查改實現。ifndef slist h define slist h include include include include 無頭單向非...

無頭結點的鍊錶實現

鍊錶的插入 任何位置 int link1insert node l,int p,int e else if null l p 1 p 1 else if p count 1 return failure else if p count 1 else if p count 1 p 1 n next q...