輸入一顆普通有序樹,將它轉換為對應的二叉鍊錶儲存,然後輸出該二叉樹的先序和後序遍歷序列。
包含多組測試資料。每組測試資料第1行為樹的結點個數n(1≤n≤26)。接下來包含n行,其中第i行(1≤n≤n)的資料依次為結點i的資料值ai(為乙個小寫字母),後面各元素為結點i的兒子序列,以0結束。若ai後僅含乙個0,則表示結點i為葉子節點。
輸出包含2行,第一行為先序遍歷序列,第二行為後序遍歷序列。
18r 2 3 4 0
a 5 6 0
b 7 0
c 8 9 10 0
w 0x 11 12 0
f 0s 13 14 0
t 0u 0
d 15 0
e 0i 16 17 18 0
j 0h 0
m 0o 0
n 0rawxdhebfcsimonjtu
hedxwfnomjiutscbar
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
const int maxn = 30;
int n;
//孩子兄弟表示樹
typedef struct tnodetree;
tree tree[maxn];
void preorder( tree t, int tmp)
void postorder( tree t, int tmp)
int main()
}int tmp = 0;
for( int i = 1; i <= n; i++)
}tree[tmp].rchild = 0;//根節點沒有兄弟
preorder(tree,tmp);
putchar(10);
postorder(tree,tmp);
putchar(10);
}return 0;
}
樹轉二叉樹(有序樹轉換為二叉樹)講解
description 輸入一顆普通有序樹,將它轉換為對應的二叉鍊錶儲存,然後輸出該二叉樹的先序和後序遍歷序列。input 包含多組測試資料。每組測試資料第1行為樹的結點個數n 1 n 26 接下來包含n行,其中第i行 1 i n 的資料依次為結點i的資料值ai 為乙個小寫字母 後面各元素為結點i的...
多叉樹 轉換為二叉樹 演算法
多叉樹轉換為二叉樹演算法。演算法描述 將多叉樹的第乙個兒子結點作為二叉樹的左結點,將其兄弟結點作為二叉樹的右結點。舉例,如下圖 樹的結構為 typedef struct binarytreenode struct binarytreenode leftchild struct binarytreen...
把二叉樹轉換為累加樹
題目鏈結 給出二叉 搜尋 樹的根節點,該樹的節點值各不相同,請你將其轉換為累加樹 greater sum tree 使每個節點 node 的新值等於原樹中大於或等於 node.val 的值之和。節點的左子樹僅包含鍵 小於 節點鍵的節點。節點的右子樹僅包含鍵 大於 節點鍵的節點。左右子樹也必須是二叉搜...