emesoohc 2015-10-25 03:53 采纳率: 100%
浏览 4159
已采纳

递归遍历二叉树,怎样保存结点数值到数组里

求讲解 递归遍历二叉树的时候,怎样能 在访问每个结点时,将结点的数值存到数组里。最后得到一个结点数值的数组。教材上遍历的时候都是直接输出,没有存到数组里,但是我在编程时遇到了要存到数组里的问题。求大神~~~

追问:
追问一下,我晚上试了一下,感觉使用数组作为参数看起来可以,但是在递归的时候每次递归数组的角标i都会被重新定义。貌似全局变量或者静态局部变量在递归时都会被重新定义。这怎么处理啊 好心塞

  • 写回答

3条回答 默认 最新

  • havedream_one 2015-10-25 04:23
    关注

    将数组作为一个遍历函数的一个参数,遍历到一个节点,就将该节点数值保存到数组中,由于数组的传递是地址传递,所以函数中的改变会反应到外部,所以遍历结束,数组中就是遍历的数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • threenewbee 2015-10-25 04:58
    关注

    关键的问题在于,你没有办法事先知道需要多大的数组。所以有两个办法,一个是估算一个数组的大小,如果超过,就再开一个更大的数组,把现有的数据拷贝进去。
    另一个办法是先开一个向量或者链表存数据,最后再转换为数组。

    评论
  • mtchy 2015-10-25 06:20
    关注

    两种方法,1.开一个全局数组,2.数组的指针当参数传递

    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 powerbulider 导入excel文件,显示不完整
  • ¥20 #关于multisim绘图遇到的问题
  • ¥15 用keil调试程序保证结果进行led相关闪烁
  • ¥15 paddle训练自己的数据loss降不下去
  • ¥20 用matlab的pdetool解决以下三个问题
  • ¥15 单个福来轮的平衡与侧向滑动是如何做到的?
  • ¥15 嵌入式Linux固件,能直接告诉我crc32校验的区域在哪不,内核的校验我已经找到了,uboot没有
  • ¥20 h3c静态路要求有详细过程
  • ¥15 调制识别中输入为时频图,星座图,眼图等
  • ¥15 数据结构C++的循环、随机数问题