Java實現二叉樹 雙鏈表

2021-07-07 01:25:12 字數 2551 閱讀 8193

雙鏈表:

public class mydoublelink implements iterable

private node head; // 頭節點

private node rear; // 尾節點

private int modcount = 0;

/*** 從鍊錶的後面新增資料

* * @param data

*/public void add(object data) else

modcount++;

} /**

* 刪除資料

* * @param data

*/public void remove(object data) else if (node == head) else if (node == rear) else

modcount++;

} }/**

* 修改資料

* * @param olddata

* @param newdata

*/public void update(object olddata, object newdata)

} /**

* 查詢資料所在的節點

* * @param data

* @return null 資料不存在

*/private node finddata(object data) else

} return temp;

} /**

* 容器中是否包含資料

* * @param data

* @return

*/public boolean contains(object data)

@override

public string tostring() else

// 繼續找下乙個節點

temp = temp.next;

} return mess + "";// mess.tostring()

} @override

public iterator iterator()

private class ite implements iterator

@override

public object next()

object data = node.data;

//下乙個位置

node = node.next;

return data;

} @override

public void remove()

}}

二叉樹:

public class mytree 

private node root; // 樹根

/*** **節點

* * @param node

* 刪除的節點

* @return

*/private node split(node node)

/*** 刪除資料

* * @param data

*/public void remove(object data) else if (node.right == null) else if (node.left == null) else

} else else

} else if (node.right == null) else

} else if (node.left == null) else

} else else

}} }

// 1. 新增資料

public void add(object data)

node newnode = new node();// 建立的新節點

newnode.data = data;

// 新增資料

if (root == null) else else

} }public void print()

private void see(node node)

} private node findparrent(object data, node addnodeposition) else

} return parrent;

} /**

* @param o1

* @param o2

* @return true o1 > o2 false o1 < o2

*/private boolean compare(object o1, object o2) else

if (c1.compareto(c2) > 0)

return false;

} /**

* 查詢資料所在的節點

* * @param data

* @return

*/private node finddata(object data) else else

}} return temp;

}}

JAVA實現二叉樹

一 分析 乙個二叉樹節點有三個部分,乙個是指向左子樹的部分,乙個是指向右子樹的部分,另外乙個是資料部分。可以把這個節點抽象成乙個節點物件,給物件有兩個節點物件屬性和乙個資料屬性。如下圖 乙個二叉樹有只有乙個根節點,其餘的都是根節點的直接或間接子節點。所以可以把二叉樹抽象成乙個物件,該物件有乙個節點型...

二叉樹(Java實現)

1.二叉樹 陣列 查詢快,插入慢 鍊錶 查詢慢,插入快 而二叉樹結構既能快速查詢,也能快速新增 2.特點 乙個節點的左子節點的關鍵字值小於這個節點,右子節點的關鍵字值大於或等於這個父節點 3.原始碼實現 public class binarytree else if key current.id e...

二叉樹 Java實現

package struct inte ce tree 工廠類 class factory1 public static tree gettreeinstance class binarytreeimpl implements tree public node node leftchild,node...