文章

8

粉丝

14

获赞

1

访问

9.0k

头像
二叉搜索树 题解:
P1317 浙江大学机试题
发布于2024年8月31日 23:20
阅读数 1.2k

个人认为是很好理解的一份代码
①逐个元素的插入--构BST

②判断是否相同的isCommon函数 

//AC代码 
#include<bits/stdc++.h>
using namespace std;

struct node {
	char val;
	node* left;
	node* right;
	node() {}
	node(char x) : val(x), left(nullptr), right(nullptr) {}
};

//构造BST的函数 
void insertBiTree(node* &root, int n) {
	if(root == nullptr) {
		root = new node(n);
		return;
	}
	
	if(root->val == n)
		return;
	else if(root->val > n) {
		insertBiTree(root->left, n);
	}
	else {
		insertBiTree(root->right, n);
	}
}

//判断两个BST是否完全相同 
bool isCommon(node* r1, node* r2) {
    if(r1 == nullptr && r2 == nullptr)
        return true;
    if(r1 == nullptr || r2 == nullptr)
        return false;
    if(r1->val != r2->val)
        return false;
    return isCommon(r1->left, r2->left) && isCommon(r1->right, r2->right);
}


int main()
{
	int n;
	while(cin >> n) {
		if(n == 0)
			break;
		
		vector<node*> root...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发