UVa 712 S Trees解題報告

2021-06-20 12:19:03 字數 840 閱讀 9174

一道簡單二叉樹問題,但是要讀懂題目意思不容易。

題意:給你一棵二叉樹,還有乙個序列,如001,對於深度為3的樹,第乙個0表示在根節點處向左孩子,第二個0表示在第二層處向左孩子,1表示在第三層向右孩子。輸出到達葉子節點的值。這道題跟一道小球下落的題目是一樣的。

思路:根據給出的n建立二叉樹,模擬即可。其中對於節點的方向可以利用map建立對映。另乙個思路是用陣列模擬,事實上這個過程跟二分很像。

這裡我用的是建樹模擬,為了熟悉二叉樹的建立和遍歷。

#include #include #include #include #include using namespace std;

struct bintree

;bintree *creattree(bintree *, char *, int, int);

char found(map&, bintree *, int);

int cmp(const void *_a, const void *_b)

char nobe[130][10];//儲存節點名稱

char str[260], command[10];

int i;

int main()

bintree * tmp = root;

for(int k = 0; k < n; k++)//遍歷樹

printf("%c", tmp->ch);

} printf("\n\n");

} return 0;

}bintree *creattree(bintree *root, char *str, int n, int level)

紫書刷題 UVA 712 S樹 S Trees

題目 我想用題目中給出的第二組輸入為例。3 x3 x1 x2 00010011 4000 010111 110000可以看做二進位制數000,可以轉化為十進位制的0,00010011中的第0位就是答案0 010可以看做二進位制數001,可以轉化為十進位制的1,00010011中的第1位就是答案0 1...

UVa 712 S Tree 完全二叉樹

題目傳送門 題目大意 1.輸入一堆沒用的xi 2.給出葉子序列leaf 和 m 個查詢序列str 3.輸出每串str查詢到的值 答題思路 1.查詢每個str後,接著輸出結果leaf num 2.因為是完全二叉樹,所以對每串str 設定初始下標num 0 遍歷str 更新num str i 0 2 s...

uva712 S Tree 假二叉樹重建

題意 給定x1 x2 x3 x4.的0 1指派,根據這些指派得出值真假。怎麼得出?x1 xn的順序就是它的深度 看圖 如果是0 往左邊走,1往右邊走。走n步,走到葉子,葉子是1則真,是0則假。思路 這道題雖然是資料結構題,但其實用不到樹。我們可以根據x1 xn的序列根據它的指派生成它的十進位制值in...