二叉樹相關

2021-09-13 17:57:16 字數 2189 閱讀 3776

1.首先建立乙個樹節點,節點有值,左節點和右節點

/**

* @author 張夢楠

* @title: $

* @package $

* @description: $

* @date 2018/5/2519:27

* @blog www.itzmn.com

* * 樹的節點類

*/public class treenode

public treenode(int value)

2.想要建立的二叉樹

3.建立二叉樹

public static void main(string args)

}

//中序遍歷二叉樹

/*** 思路:

* 先查詢左節點,然後查詢根節點,最後查詢右節點

* @param roottreenode

*/private static void zhongxu(treenode roottreenode)

}

//後序遍歷二叉樹

/*** 思路:

* 先遍歷左節點,然後遍歷右節點,然後輸出根幾點

* @param roottreenode

*/private static void houxu(treenode roottreenode)

}

一般而言都是給陣列,然後自己實現二叉樹,所以要自己動態生成二叉樹

最終樹的效果:

首先需要建立乙個根節點,用來儲存根節點

**:

*  樹的根類

*/public class treeroot

public void settreeroot(treenode treeroot)

}

**實現:

/**

* 動態建立二叉查詢樹

* 思路:

* 根據根節點,如果根節點為null就建立根節點,

* 根據傳入的值,和根節點比較大小,小的放左邊,大的放右邊,

* 如果左邊有節點,就把左節點看成根節點重新判斷,右邊同理

* @param treeroot

* @param value

*/private static void create(treeroot treeroot, int value) else else

}else else }}

}}

測試用例:加上剛剛的遍歷,

public static void main(string args);

treeroot treeroot = new treeroot();

for (int i:arrs)

system.out.print("先序查詢:");

xianxu(treeroot.gettreeroot());

system.out.println();

system.out.print("中序查詢:");

zhongxu(treeroot.gettreeroot());

system.out.println();

system.out.print("後序查詢:");

houxu(treeroot.gettreeroot());

得到二叉樹的高度

**:

/**

* 得到樹的高度

* @param treeroot

* ** 7

* 1 9

* 3

* 2 6

*/private static int getheight(treenode treeroot) else

return left+1;}}

二叉樹相關

廣度優先遍歷 對於每層的節點,放到乙個用來處理節點佇列裡,另外每個佇列對應乙個vector,將每層節點放進vector 對於每個佇列,彈出先放的元素q.front,將這個元素放進vector,隨後,將左節點和右子節點放進佇列 class solution queue q q.push root wh...

二叉樹 二叉樹的相關操作

遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...

二叉樹相關演算法

節點 class node t public node t left public node t right public node t value,node t left,node t right public node t value this value,null null 二叉樹 前中後深度...