Java實現單鏈表資料結構的增刪改查

2021-09-12 09:35:01 字數 1996 閱讀 4272

package 鍊錶;

/** *

*1)單鏈表的插入、刪除、查詢操作;

* 2)鍊錶中儲存的是int型別的資料;

**/public class singlylinkedlist

return p;

}//通過index查詢

public node findbyindex(int index)

return p;

}//無頭部節點(哨兵),表頭部插入乙個值,這種操作和輸入的順序相反,逆序

public void inserttohead(int value)

//無頭部節點(哨兵),表頭部插入新節點,這種操作和輸入的順序相反,逆序

public void inserttohead(node newnode)else

}//鍊錶尾部插入,按順序插入,時間複雜度平均為o(n),這個可以優化,定義多乙個尾部節點,不儲存任何資料,時間複雜度未o(1)

public void inserttail(int value)else

curr.next = newnode;}}

//在指定節點後面插入新節點,直接在這個節點後面斷開連線,直接插入

public void insertafter(node p,int value)

//在指定節點後面插入新節點,直接在這個節點後面斷開連線,直接插入

public void insertafter(node p,node newnode)

newnode.next = p.next;

p.next = newnode;

}//在指定節點前面插入新節點

public void insertbefore(node p,int value)

//在指定節點前面插入新節點

public void insertbefore(node p,node newnode)

if(p == head)

node curr = head;//當前節點,(查詢指定節點p的前乙個節點,當curr的下個節點等於指定節點時候,curr就是指定節點的前乙個節點

while(curr != null && curr.next != p)

if(curr == null)

newnode.next = p;

curr.next = newnode;

}//刪除指定節點

public void deletebynode(node p)

node curr = head;//從鏈頭開始查詢,curr是當前節點,查詢指定節點p的前乙個節點,當curr的下個節點等於指定節點時候,curr就是指定節點的前乙個節點

while(curr != null && curr.next != p)

if(curr == null)

curr.next = curr.next.next;

}//刪除指定值

public void deletebyvalue(int value)

node curr = head;//當前節點,從煉表頭開始查詢

node pre = null;//當前節點的前乙個節點,找查詢指定的過程,要不斷地儲存當前節點的前乙個節點

while(curr != null && curr.data != value)

if(curr == null)

if(pre == null)else

}//列印鍊錶

public void printall()

}//單鏈表資料結構類,以儲存int型別資料為例

public class node

public int getdata()

}public static void main(stringargs) ;

for (int i = 0; i < data.length; i++)

system.out.println("列印原始:");

link.printall();

}}

java資料結構 單鏈表實現

節點類 package linkedlist public class node 單鏈錶類 package linkedlist 鍊錶 author administrator param public class linkedlist else curr.next node length retu...

資料結構 單鏈表的java實現

單鏈表實現鍊錶的列印及元素刪除操作,鍊錶的實現主要是next屬性的定義,將一堆節點關聯起來的。實現簡單的鍊錶如下 public class linknode public linknode getnext public void setnext linknode next public int ge...

資料結構 單鏈表的java實現

單向鍊錶是一種線性表,實際上是由節點 node 組成的,乙個鍊錶擁有不定數量的節點。其資料在記憶體中儲存是不連續的,它儲存的資料分散在記憶體中,每個結點只能也只有它能知道下乙個結點的儲存位置。由n各節點 node 組成單向鍊錶,每乙個node記錄本node的資料及下乙個node。向外暴露的只有乙個頭...