编者按:本文主要从大型作业(课程设计)题目和内容;程序中所采用的数据结构及存储结构的说明;算法的设计思想;平衡二叉树与未平衡化的二叉树查找效率比较;时间复杂度的分析;心得和总结,对数据结构作业报告进行讲述。其中,主要包括:用二叉链表作存储结构、用顺序表(一维数组)作存储结构、二插链表作存储结构、对于未平衡化的二叉树、查找函数最坏的情况是要找的点正好是二叉树的最深的叶子结点,此时时间复杂度=o(n)、删除函数不采用递归手法,而是采用重新建立一颗不含要删结点的二插排序树、只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键,具体材料请详见:
一、大型作业(课程设计)题目和内容
1、 用二叉链表作存储结构
(1) 以回车(‘\n’)为输入结束标志,输入数列l,生成二叉排序树t;
(2) 对二叉排序树t作中序遍历,输出结果;
(3) 计算二叉排序树t的平均查找长度,输出结果;
(4) 输入元素x,查找二叉排序树t,如果存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无结点x”;
(5) 判断二叉排序树t是否为平衡二叉树,输出信息“ok!”/“no!”;
*(6) 再用数列l,生成平衡二叉排序树bt:当插入新元素后,发现当前二叉排序树bt不是平衡二叉排序树,则立即将它转换成新的平衡二叉排序树bt;
*(7) 计算平衡二叉排序树bt的平均查找长度,输出结果。
2、 用顺序表(一维数组)作存储结构
(1) 以回车(‘\n’)为输入结束标志,输入数列l,生成二叉排序树t;
(2) 对二叉排序树t作中序遍历,输出结果;
(3) 计算二叉排序树t的平均查找长度,输出结果;
(4) 输入元素x,查找二叉排序树t,如果存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无结点x”;
(5) 判断二叉排序树t是否为平衡二叉树,输出信息“ok!”/“no!”。
二、程序中所采用的数据结构及存储结构的说明
程序中的数据采用“树形结构”作为其数据结构。具体的,我采用的是“二叉排序树”。
&