愿你 发表于 2018-4-25 21:00:01

用栈实现二叉树的递归遍历???

用栈实现二叉树的递归遍历的时候 栈中的数据元素是什么类型的?是结点类型?还是指向结点的指针类型??
怎么实现啊???

ABC23 发表于 2018-4-26 18:19:11

二叉树的前、中、后遍历,都是基于栈的,而层序遍历则是基于队列的。

愿你 发表于 2018-4-26 19:13:24

ABC23 发表于 2018-4-26 18:19
二叉树的前、中、后遍历,都是基于栈的,而层序遍历则是基于队列的。

那栈里的元素到底是结点还是指向节点的指针,还是只是结点的数据域??

ABC23 发表于 2018-4-26 19:33:22

愿你 发表于 2018-4-26 19:13
那栈里的元素到底是结点还是指向节点的指针,还是只是结点的数据域??

二叉树的前中后遍历:递归实现,相当于压栈、弹栈……的过程

愿你 发表于 2018-4-26 22:34:15

ABC23 发表于 2018-4-26 19:33
二叉树的前中后遍历:递归实现,相当于压栈、弹栈……的过程

{:10_277:}好啦~知道啦~
不过我想问的是栈中存储元素的数据类型是啥{:10_257:}

ABC23 发表于 2018-4-27 01:15:32

愿你 发表于 2018-4-26 22:34
好啦~知道啦~
不过我想问的是栈中存储元素的数据类型是啥

C是按值传递,把二叉树的深拷贝传进去。不传递指针怎么改变外面的东西?

愿你 发表于 2018-4-27 21:26:02

ABC23 发表于 2018-4-27 01:15
C是按值传递,把二叉树的深拷贝传进去。不传递指针怎么改变外面的东西?

我就觉得是要把指向结点的指针压栈...
可是我们老师说可以直接压数据域??{:10_266:}

愿你 发表于 2018-4-27 21:27:11

ABC23 发表于 2018-4-27 01:15
C是按值传递,把二叉树的深拷贝传进去。不传递指针怎么改变外面的东西?

我就觉得是将指向节点的指针压栈..
但是我们老师说可以直接压数据域,我就觉得很奇怪{:10_266:}

人造人 发表于 2018-4-27 22:27:48

愿你 发表于 2018-4-27 21:26
我就觉得是要把指向结点的指针压栈...
可是我们老师说可以直接压数据域??

压指针最通用
压数据域也可以,只是数据域比较大的时候就不适合压数据域了

人造人 发表于 2018-4-27 22:49:14





当然,这个“大”和“小”对现在的计算机来说,差别不是很大
^_^

愿你 发表于 2018-4-28 10:32:56

人造人 发表于 2018-4-27 22:49
当然,这个“大”和“小”对现在的计算机来说,差别不是很大
^_^

可是我如果是压数据的话,我怎么找到它的右孩子??

人造人 发表于 2018-4-28 13:36:26

愿你 发表于 2018-4-28 10:32
可是我如果是压数据的话,我怎么找到它的右孩子??

发代码
页: [1]
查看完整版本: 用栈实现二叉树的递归遍历???