資料結構 鍊錶(java實現)

2021-08-28 04:05:05 字數 1823 閱讀 5362

/**

* 鍊錶節點定義

* */

private class node

public void setnext(node next)

public node(object data)

} private node head;

private int size;

public linkedlistonepoint()

public boolean isempty()

public int size()

public object headnode()

return head.data;

} /**

* 在煉表表頭插入乙個節點(入棧)

* * @param obj

*/public void insertinhead(object obj) else

size ++;

} /**

* 刪除煉表表頭節點(出棧)

* @return

*/public object deleteheadnode()

object objct = head.data;

if (head.next == null) else

size--;

return objct; }

/*** 刪除節點

* 1. 首先需找到刪除的節點

* 2.然後讓前乙個節點指向刪除節點的下乙個節點

* @param obj

* @return

*/public boolean deletenode(object obj)

node previousnode = null;

node currentnode = head;

while (currentnode.data != obj)

} while (currentnode.data !=obj)

previousnode = currentnode;

currentnode = currentnode.next;

} if (currentnode == head) else

return true; }

/*** 判斷鍊錶是否存在某個元素

* @param obj

* @return

*/public boolean containobject(object obj)

node n =head;

while (n.next!=null) else

} return false; }

public void display()

node n = head;

while (n != null)

system.out.println(); }

/*** 插入節點

* @param obj

*/public void insertnode(object obj)else

node.next = newnode;

} size++;

}/**

* 反轉鍊錶(遞迴)

* * 在反轉鍊錶的時候需要判斷反轉的節點是否還有下乙個節點

* *

* @param previousnode

* @return

*/public static node reversebyrecursive(node previousnode) else }

public static void main(string args)

資料結構 單向鍊錶(java實現)

public class node 為節點追加節點 當前節點 node currentnode this while true 賦值當前節點 currentnode nextnode 把需要追回的節點追加為找到的節點的下乙個節點 currentnode.next node return this 刪...

Java資料結構 鍊錶

博主q q 656358805,歡迎線上交流!public class mylinklist public void addnode type data 預設在鍊錶最後新增乙個結點 addindex.next temp temp.pre addindex this.size system.out.p...

資料結構 Java鍊錶

package linktest class link 遞迴新增節點到尾部 param newnode public void addnode node newnode else 以上為內部類 private node root 定義根節點 呼叫內部類方法新增節點 param data public...