Java 實現鍊錶的一些基本操作

2021-09-24 02:15:41 字數 1979 閱讀 9208

與順序表相同,鍊錶也有增、刪、改、查等操作

下面用**演示:

首先定義乙個結點的類,和構造方法

class node 

}

建立乙個鍊錶

public static node createlinkedlist()
增操作即插入,可分為頭插尾插

頭插:

//頭插

public static node pushfront(node head, int value)

尾插:

尾插要考慮一些特殊情況

//尾插

public static node pushback(node head, int value) else

}//幫助尾插找到尾節點的方法

//找到尾節點

public static node getlast(node head)

return cur;

}

刪除操作

刪除操作也可分為頭刪尾刪

頭刪:

//頭刪

public static node popfront(node head)

return head.next;

}

尾刪:

尾刪也要考慮一些特殊的情況

//尾刪

public static node popback(node head)

if(head.next == null) else

}//幫助尾刪找到倒數第二個結點的方法

//找倒數第二個結點

private static node getlastlast(node head)

return node;

}

給定乙個值刪除:

可以分幾種方法

一:遍歷找到要刪除的值,刪除該結點

//遍歷每個結點,如果結點值為要刪除的值,刪除該節點

public static node removeelements(node head, int value)

node cur = head.next;

node pre = head;

while(cur != null) else

cur = cur.next;

} if(head.value == value)

return head;

}

二:遍歷將不為要刪除的值的結點尾插到乙個新的鍊錶

//遍歷每個結點,如果結點值不為要刪除的值,則將該節點尾插入乙個新的鍊錶

public static node removeelements2(node head, int value) else

last = cur;

}cur = next;

} return newlist;

}

其他的操作

轉換鍊錶順序

//轉換鍊錶順序 

//一.遍歷鍊錶並將結點按遍歷順序頭插入乙個新的鍊錶

public static node reverselist(node head)

return newlist;

}

實現這些方法

public static void main(string args)
輸出鍊錶

//print

public static void display(node head)

system.out.printf("null%n");

}

鍊錶的一些基本操作

include include typedef struct list elem,pelem typedef struct real list,plist void initialize plist mylist 初始化 int creat plist mylist1 建立鍊錶 else print...

java 用鍊錶實現寵物商店的一些基本操作

要求實現以下需求 特別要求 node中儲存的資料data型別為object。初版 如下 class link public node object data public void removenode object keyword else now now.next return public v...

鍊錶的一些操作

判斷兩個鍊錶是否有交點 判斷兩個單鏈表是否相交,如果相交,給出相交的第乙個點 假設兩個鍊錶都不存在環 相交的煉表示意圖如下所示。兩個沒有環的鍊錶如果是相交於某一結點,如上圖所示,這個結點後面都是共有的。所以如果兩個鍊錶相交,那麼兩個鍊錶的尾結點的位址也是一樣的。程式實現時分別遍歷兩個單鏈表,直到尾結...