程序员

257-根据数组下标完成对二叉树的中序遍历

作者:admin 2021-04-26 我要评论

根据数组下标完成对二叉树的中序遍历 即顺序存储的物理结构 题目图解如下 根据数组ar完成对二叉树的先序遍历。 解题思路如下 我们是从上到下从左到右依次进行编...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

根据数组下标完成对二叉树的中序遍历

即顺序存储的物理结构

在这里插入图片描述

题目图解如下

在这里插入图片描述
根据数组ar完成对二叉树的先序遍历。

解题思路如下

我们是从上到下,从左到右,依次进行编号,即数组的下标。-1代表结点不存在。
在这里插入图片描述
我们知道,数组(物理结构)和二叉树的图(逻辑结构)有个对应的数学关系。
假设结点的下标为i,它的左孩子就是2i+1,它的右孩子的下标就是2i+2;

代码如下

void InOrder(const int* ar, int i, int n)
{
	if (i < n && ar[i] != -1)
	{
		InOrder(ar, i * 2 + 1, n);//left
		cout << ar[i] << " ";
		InOrder(ar, i * 2 + 2, n);//right
	}
}
int main()
{
	int ar[] = { 7,8,23,9,15,-1,18,-1,-1,10,20 };
	int n = sizeof(ar) / sizeof(ar[0]);

	InOrder(ar, 0, n);
	cout << endl;

	return 0;
}

运行结果如下

在这里插入图片描述

;原文链接:https://blog.csdn.net/LINZEYU666/article/details/115426249

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 257-根据数组下标完成对二叉树的中序遍

    257-根据数组下标完成对二叉树的中序遍

  • YUV420转RGB888

    YUV420转RGB888

  • matlab/simulink电力电子仿真单相变压

    matlab/simulink电力电子仿真单相变压

  • C++二叉搜索树转换成双向循环链表(双

    C++二叉搜索树转换成双向循环链表(双

腾讯云代理商
海外云服务器