为了克服对树结构编程的畏惧感和神秘感,下定决心将二叉树的大部分操作实现一遍,并希望能够掌握二叉树编程的一些常用技术和技巧。关于编程实现中的心得和总结,敬请期待!~
[1] 数据结构和表示: 二叉树的输入输出格式采用广义表表达式形式,内部表示采用左孩子右孩子的链式存储。
[2] 已经实现的操作有:
A. 根据二叉树的广义表表达式来创建二叉树(含表达式合法性检测);
B. 根据二叉树的前序和中序遍历列表来创建二叉树;
C. 根据二叉树的中序和后序遍历列表来创建二叉树;
D. 二叉树的“左孩子右孩子”链式存储转化为广义表表达式;
E. 二叉树的前序、中序、后序的递归和非递归遍历;层序遍历;结点关联列表;
F. 求解二叉树的高度、结点总数、叶子结点总数、所有的叶子结点列表;根结点到所有叶子结点的路径;最长路径;
G. 二叉树复制,二叉树全等性比较,二叉树交换(将二叉树的所有结点的左右子树互换)
[3] 尚待实现的操作:
A. 求解二叉树中所有最长(短)路径
E. 其它
[4] 二叉树 Java 实现代码:
[5] 该二叉树程序的用法示例代码:
[6] 先歇会吧!