二叉樹建立

2021-10-09 14:03:20 字數 2830 閱讀 1089

建立二叉樹的節點:

public class treenodepublic treenode(){}}建立二叉樹並遍歷:

public class test ;treenode treenode = create(str);system.out.print("先序遍歷:");pre(treenode);

system.out.println();

system.out.print("中序遍歷:");

mid(treenode);

system.out.println();

system.out.print("後序遍歷:");

rear(treenode);

system.out.println();

system.out.println("層次遍歷:");

level(treenode);

}

/**

* 建立二叉樹

* @param arr

* @return

*/

public static treenode create( string arr)

treenode brr = new treenode[arr.length];

for (int i = 0; i < arr.length; i++)

}

for (int i = 0; i < (( brr.length / 2) - 1); i++)

}

int size = arr.length;

int end =size / 2 -1;

if(size % 2 == 0)else

return brr[0];

}

/**

* 先序遍歷

*/

public static void pre(treenode treenode)

system.out.print(treenode.val + " ");

pre(treenode.left);

pre(treenode.right);

}

/**

* 中序遍歷

*/

public static void mid(treenode treenode)

mid(treenode.left);

system.out.print(treenode.val + " ");

mid(treenode.right);

}

/**

* 後續遍歷

*/

public static void rear(treenode treenode)

rear(treenode.right);

rear(treenode.left);

system.out.print(treenode.val + " ");

}

/**

* 層次遍歷

*/

public static void level(treenode treenode)

listlist = new arraylist<>();

list.add(treenode);

while(list.size() > 0)

if(node.right != null)

}

system.out.println();

list.clear();

list = templist;

}

}

}

執行結果:

建立二叉樹 後序建立二叉樹

由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...

建立二叉樹

今天看到了乙個資料結構的筆試題目,他要求寫出建立二叉樹的程式。我想練習練習,所以想了一下其大致的思路,記錄如下 題目的要求很簡單,給出乙個字串序列 比如說a b d,e h j,k l,m n c f,g i 然後要求按照其規則建立二叉樹,題目不難但是卻花費了我不少的時間 第一步,我想到的是需要什麼...

建立二叉樹

二叉樹在結構上不依賴組織鍊錶 指路法通過根節點與目標節點的相對位置進行定位 define bt left 0 define bt right 1 typedef unsigned long long btpos 結點指標域定義 typedef struct tag btressnode btress...