題意:
給定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...