{数据结构}二进制与十进制转换与二叉树关系

本文探讨了二叉树采用顺序存储结构时,如何通过节点位置确定其对应的十进制编号。利用层次与二进制的关系,文章揭示了一个有趣的现象:树中节点的顺序存储下标即为其对应的十进制整数。

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

/************************************

算法描述:假设二叉树中的左分支的标号为0,右分支的标号为1,并对二叉树增设一个头结点

,令根节点为其右孩子,则从头结点到树中任意节点所经分支的序列为一个二进制序列,可认

作是某个十进制数的二进制表示.已知一棵非空二叉树以顺序存储结构表示,试写一尽可能

简单的算法,求出与在树的顺序存储结构中下标值为i的结点对应的十进制整数 

**************************************/

 

 

/**************************************************************************

实际上就是一个圈套.因为下标值i就是结点对应的十进制整数 

              @

               /(1) 

                /

                 1

            (0)/ /(1)

                /   /

              2     3

         (0)/ /    //(1)

            /   /  /  /

           4    5 6  7

 

如示意图所示,其实利用的就是层次与二进制的关系.也就是说,向下一层,则必定多一位

1或者0,相应的增加的就是二进制的一位,也就是相当于将原来的数进行X2(二进制特点).

而根据父母结点与孩子结点的关系,可以知道也是符合这种特性的.所以,树的顺序存储结构

中下标值i就是走过路径组成的二进制序列代表的十进制数 

*******************************************************************************/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值