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

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

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • havedream_one 2015-10-25 04:23
    已采纳

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

    1 打赏 评论
  • threenewbee 2015-10-25 04:58

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

    打赏 评论
  • mtchy 2015-10-25 06:20

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

    打赏 评论

相关推荐 更多相似问题