c_cpp 二叉搜索树(BST)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉搜索树(BST)相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <vector>
using namespace std;

struct node {
	int data;
	node *left, *right;
};

void insert(node*& root, int data) {
	if (root == NULL) {
		root = new node;
		root->data = data;
		root->left = root->right = NULL;
		return;
	}
	if (data < root->data) {
		insert(root->left, data);
	}
	else {
		insert(root->right, data);
	}
}

void inOrderTraverse(const node* root, vector<int>& vi) {
	if (root == NULL) {
		return;
	}
	inOrderTraverse(root->left, vi);
	vi.push_back(root->data);
	inOrderTraverse(root->right, vi);
}

int main() {
	node* root = NULL;
	insert(root, 4);
	insert(root, 2);
	insert(root, 1);
	insert(root, 3);
	insert(root, 6);
	insert(root, 5);
	insert(root, 7);

	vector<int> in;
	inOrderTraverse(root, in);

	for (auto val : in) {
		cout << val << " ";
	}
	cout << endl;
	// 1 2 3 4 5 6 7
	return 0;
}

以上是关于c_cpp 二叉搜索树(BST)的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 是有效的二叉搜索树。验证BST

c_cpp 独特的二叉搜索树。给定n,生成存储值1 ... n的所有结构上唯一的BST(二叉搜索树)。

树--04---二叉树--01---简介二叉搜索树(BST)实现

二叉搜索树_BST

二叉搜索树_BST

二叉搜索树(BST)的具体实现