《数据结构教程》笔记之二叉树(2)

live long and prosper

接着昨天的文章来讲,A(B(D(,G)),C(E,F))

从根结点到叶节点的每一条路,使用栈来存储上面的元素。

下面理一下代码执行的思路

遍历字符

操作

栈操作

A

执行15行代码,将A作为根节点

None

执行12行代码,栈底指针上移,让A进栈,预备创建左孩子链(k=1)

将A进栈

B

执行15行代码,不是根节点,再执行19行代码,有k=1创建左孩子节点

A

执行12行代码,栈底指针上移,让B进栈,预备创建左孩子链(k=1)

AB

D

执行15行代码,不是根节点,再执行19行代码,有k=1创建左孩子节点

AB

执行12行代码,栈底指针上移,让D进栈,预备创建左孩子链(k=1)

ABD

执行14行代码,预备创建有孩子链(k=2)

ABD

G

执行15行代码,不是根节点,再执行19行代码,有k=2创建右孩子节点

ABD

执行13行代码,D出栈

AB

执行13行代码,B出栈

A

执行14行代码,预备创建有孩子链(k=2)

A

C

执行15行代码,不是根节点,再执行19行代码,有k=2创建右孩子节点

A

执行12行代码,栈底指针上移,让C进栈,预备创建左孩子链(k=1)

AC

E

执行15行代码,不是根节点,再执行19行代码,有k=1创建左孩子节点

AC

执行14行代码,预备创建有孩子链(k=2)

AC

F

执行15行代码,不是根节点,再执行19行代码,有k=2创建右孩子节点

AC

退栈

A

退栈

None

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值