是否同一棵二叉搜尋樹

2022-03-11 19:17:35 字數 1080 閱讀 6306

1 第一種思路是比較容易想到的,就是直接根據輸入的資料建立二叉搜尋樹,然後像判斷兩棵樹是否同構那樣,先判斷根節點是否相同,然後再遞迴的判斷左子樹,右子樹。

2 第二種思路是不建樹,直接根據輸入的序列使用遞迴的思想去解決。

3 第三種思路是建一棵樹,再判斷其他序列是否與該樹一致。

#define _crt_secure_no_warnings

#include #include #include struct treenode

;struct treenode* newnode(int v)

struct treenode* insert(struct treenode* t,int v)

else

else

}return t;

}struct treenode* maketree(int n)

return t;

}int check(struct treenode* t,int v)

else if (v > t->data)

else

}else

else

}}int judge(struct treenode* t,int n)

else

for (i = 1;i < n;i++) }

if(flag)

else }

void reset(struct treenode* t)

if (t->right)

t->flag = 0;

}void freetree(struct treenode* t)

if (t->right)

free(t);

}int main()

else

reset(t);

} freetree(t);

scanf("%d", &n);

} // system("pause");

return 0;

}

是否同一棵二叉搜尋樹

5 4 是否同一棵二叉搜尋樹 25分 給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入包含若干組測試資料。每...

是否同一棵二叉搜尋樹

04 樹4 是否同一棵二叉搜尋樹 25 分 給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入格式 輸入包含若...

是否同一棵二叉搜尋樹

給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入格式 輸入包含若干組測試資料。每組資料的第1行給出兩個正整數...