二叉樹排序

2021-09-28 15:44:18 字數 1100 閱讀 5371

每個節點都可以有左子節點,右子節點

每乙個節點都有乙個值

二叉樹的遍歷分左序,中序,右序

左序即: 中間的數遍歷後放在左邊

中序即: 中間的數遍歷後放在中間

右序即: 中間的數遍歷後放在右邊

如圖所見,我們希望遍歷後的結果是從小到大的,所以應該採用中序遍歷

public class mynode

public mynode(int value, mynode leftnode, mynode rightnode)

//新增元素

public void addnode(int nvalue)

if((value - nvalue) >= 0)

leftnode.addnode(nvalue);//存在左側葉子節點則便利插入:

}else

rightnode.addnode(nvalue);}}

//中序便利

public listsortbycenter()

list.add(this);

if(null != rightnode)

return list;

}

public class nodemain ;

for (int number : randoms)

//中序便利二叉樹

listlistnode = tree.sortbycentertree();

for (mynode mynode : listnode)

system.out.println();

//獲取頭節點

mynode top = tree.gettop();

system.out.println("二叉樹頭節點的值為:"+top.getvalue()+",二叉樹元素個數為:"+tree.size());

}

8.輸出結果

0,7,10,10,10,30,67,73,74,78,81,

二叉樹頭節點的值為:67,二叉樹元素個數為:11

二叉樹,排序二叉樹

說到二叉樹,這可是資料結構裡面的非常重要的一種資料結構,二叉樹是樹的一種,本身具有遞迴性質,所以基於二叉樹的一些演算法很容易用遞迴演算法去實現。作為一種非線性結構,比起線性結構還是相對複雜的,很多人甚至看不懂演算法的意思,不能理解。其實一開始接觸這些東西還是挺暈的,不過你多看幾遍,上機實現可能你就會...

排序二叉樹or搜尋二叉樹or查詢二叉樹

排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...

排序二叉樹or搜尋二叉樹or查詢二叉樹

排序二叉樹,搜尋二叉樹,查詢二叉樹都是乙個意思,只是叫法不同而已。下面的文章中我們統稱為排序二叉樹。本文主要是針對高中資訊學,因此其中不涉及到指標,所有需要用指標的地方都直接使用陣列進行模擬。排序二叉樹定義 1 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值 2 若右子樹不空,則右子...