C++实现二叉树

代码由三部分组成,1、声明二叉树结构体 2、二叉树中插入数据 3、中序遍历二叉树数据

#include 

using namespace std;

//定义树结构体
struct TreeNode {
	int val;
	TreeNode* left = nullptr;		//左子树
	TreeNode* right = nullptr;		//右子树
	TreeNode(int x) :val(x), left(nullptr), right(nullptr) {};
};

//插入节点到二叉树中
TreeNode* insertIntoBST(TreeNode* root, int val) {

	if (root == nullptr) {
		return new TreeNode(val);
	}
	if (val < root->val) {
		root->left = insertIntoBST(root->left, val);
	}
	else {
		root->right = insertIntoBST(root->right, val);
	}

	return root;
}


//中序遍历打印输出数据
void inorderTrvalersal(TreeNode* root) {
	if (root != nullptr) {
		inorderTrvalersal(root->left);
		std::cout << root->val << " " ;
		inorderTrvalersal(root->right);
	}
}

//释放二叉树内存
void freeTree(TreeNode* root) {
	if (root != nullptr) {
		freeTree(root->left);
		freeTree(root->right);
		delete root;
	}
}






int main()
{
	TreeNode* root = nullptr;
	root = insertIntoBST(root, 5);
	insertIntoBST(root, 3);
	insertIntoBST(root, 6);
	insertIntoBST(root, 8);
	insertIntoBST(root, 10);

	std::cout << "中序遍历" << std::endl;
	inorderTrvalersal(root);
	freeTree(root);

	return 0;
}

你可能感兴趣的:(c++,算法,开发语言)