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 二叉樹 前中後深度...