uva712 S Tree 假二叉樹重建

2021-06-17 15:11:40 字數 757 閱讀 3133

題意:

給定x1 x2 x3 x4......的0 1指派, 根據這些指派得出值真假。怎麼得出? x1 ~xn的順序就是它的深度(看圖), 如果是0 往左邊走, 1往右邊走。 走n步,走到葉子, 葉子是1則真, 是0則假。

思路:

這道題雖然是資料結構題, 但其實用不到樹。我們可以根據x1~xn的序列根據它的指派生成它的十進位制值index。 然後輸出terminal[index]就行了。(terminal是葉子的01序列。注意: 是要根據x1~xn的序列! x1~xn是可以任意排序的。

演算法複雜度

:o(n)n是指派數。

**:#include #include using namespace std;

#define max_n 8

#define max_node 256

int main()

gets(terminal);

// star

printf("s-tree #%d:\n", cases++);

int vva;

scanf("%d%*c", &vva);

for (int i = 0; i < vva; i++) {

char strtp[max_n];

gets(strtp);

int index = 0;

for (int j = 0; j < n; j++) {

if (strtp[order[j] - 1] == '1') {

index |= (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...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...