创建树以及遍历—-刷题构建原生环境

本文详细介绍了如何使用C++实现二叉树的创建与遍历,包括前序遍历和层次遍历的代码实现。通过deque和queue辅助数据结构,实现了二叉树节点的动态创建与遍历,为理解二叉树数据结构提供了实用的编程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	void CreateTre(TreeNode **root,deque<int> &p)
	{
		if ((*p.begin()) == 0)
		{
			*root = nullptr;
			p.pop_front();
		}
		else
		{
			*root = new TreeNode(*p.begin());
			//cout << *p.begin() << " ";
			p.pop_front();
			CreateTre(&((*root)->left), p);
			CreateTre(&((*root)->right), p);
		}
	}
	void FirstTraver(TreeNode *root)
	{
		if (root == nullptr) return;
		cout << root->val << " ";
		FirstTraver(root->left);
		FirstTraver(root->right);
	}
	void FloorTraver(TreeNode *root)
	{
		if (root == nullptr) return;
		queue<TreeNode *> vec;
		vec.push(root);
		TreeNode *fro = nullptr;
		TreeNode *bac = nullptr;
		while (!vec.empty())
		{
			fro = vec.front();
			bac = vec.back();
			if (fro->left != nullptr) vec.push(fro->left);
			if (fro->right != nullptr) vec.push(fro->right);
			while (fro != bac)
			{
				cout << fro->val << " ";
				vec.pop();
				fro = vec.front();
				if (fro->left != nullptr) vec.push(fro->left);
				if (fro->right != nullptr) vec.push(fro->right);
			}
			cout << fro->val << endl;
			vec.pop();
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值