博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[数据结构]我在做树一章题目时的心得体会(不断更新中...)
阅读量:3982 次
发布时间:2019-05-24

本文共 983 字,大约阅读时间需要 3 分钟。

1、后序非递归遍历二叉树时,访问到指定结点时栈中的元素为此结点的祖先。

2、k叉树第p个结点的第k-1个孩子的层次序列为p*k。

3、在树这章写递归时,出口判断常为树空或子树空。

4、树转成的二叉树无右子树。

5、树用孩子兄弟存储的结构中,结点若无firstchild,则该结点在树的结构中必是一个叶子。故用孩子兄弟链表示的树统计叶子的算法可以写为firstchild == NULL。

6、找子孙常用先序遍历,找祖先常用后序遍历。

7、在按层次访问一棵二叉树的基础上加以修改,不论其左右子树是否为空均入队,若为完全二叉树,则将它按层序输出时得到的是一个连续的不含空指针的序列,反之序列中会含有空指针。

8、递归中常用return向上级函数返回值。

9、对于递归单棵树,用NULL和非NULL做出口判断已经足够。对于建树的担心,用return向上级函数返回地址,并在非NULL状态下建好链就行了。而对于多棵树,则要对不同树的不同状态进行出口判断。

10、先序线索树结点的前驱:当结点无左子树时,是lchild指向的结点,否则要设一个pre指针指向节点的根,则pre指针指向的结点为当前结点的前驱。结点的后继:结点有左子树,则后继为其左子树,否则为其rchild指向的结点。

11、中序线索树结点的前驱:结点无左子树时,其lchild指向的结点即为它的前驱,否则为其左子树的最右下结点;后继:结点无右子树时其后继为其rchild指向的结点,否则其后继是它右子树最左结点。

12、后序线索树节点的前驱:若结点无左子树,则其lchild指向的结点是其前驱,否则若结点有右子树,其右孩子为其前驱,否则其左孩子为其前驱;后继:结点右子树为空时,其rchild指向的结点为其后继,否则需通过找结点的双亲,若该结点为双亲的左孩子且双亲有右子树,则结点的后继为其双亲右子树的最左结点,若其双亲无右子树,则结点后即为其双亲。若结点是其双亲的右孩子,其后继是其双亲。而线索二叉树结点中一般不含指向双亲的指针,由此可见,线索对后序线索树的后继无太多帮助。

13、对于给定序列建树,应用给定序列找出其根的位置,再找左右子树的上下界作为新树的全树上下界,不断缩小树,直至树空。

14、对于给定静态数组建链结构树,先建好根,然后用2*i和2*i+1的规律建其左右子树。

15、

不断更新中...

转载地址:http://jmpui.baihongyu.com/

你可能感兴趣的文章
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
关于共享单车定位不准问题
查看>>
ubuntu误删文件造成软件包信息列表损坏无法更新或安装文件
查看>>
终于搞定CString和string之间转换的问题了
查看>>
用防火墙自动拦截攻击IP
查看>>
补充自动屏蔽攻击ip
查看>>
多字节与UTF-8、Unicode之间的转换
查看>>
通信和通讯有什么区别?
查看>>
谷歌走了
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>