else cout<<\无\
cout<<\输入操作(当输入-1时程序结束):\ cin>>j; } return 0; }
七、运行结果
输入节点数
输入二叉树数,并输出中序遍历
当输入25时,二叉树中无该数据,输出无25
输入-1表示退出
八、时间复杂度分析
1、 查找函数最坏的情况是要找的点正好是二叉树的最深的叶子结点,此时时间复杂度=O(n)。 2、 插入函数最坏的情况是要插入的点正是二叉树的最深的那一支的叶子
结点,此时时间复杂度=O(n)。
3、 中序遍历函数,删除函数,其时间复杂度均与以上情况类似,等于 O(n)。
注:对时间复杂度的分析,均指在最坏情况下的时间复杂度。
九、心得与体会
这次数据结构的课程设计作业在第15周作业布置下来的,但紧接着是我们的英语四级考试,数字逻辑、离散数学等一系列考试,既要做这次的课程设计,也要认真准备考试,因此时间非常紧。但基于我对编程的极大兴趣,我对这次的课程设计非常重视。通过这次实验我也着实又感受了一次编程的乐趣,从中也学到了不少知识。 虽然都说“程序=数据结构+算法”,但我在学习运用数据结构编程之前,并没能深刻体会到这一点,直到这次课设实践。
我感受最深的一点是:以前用C、C++编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。感觉有点像张飞打仗,有勇无谋,只要能完成任务就行。但现在编程感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,首先选取自己需要的数据结构,是树还是图或是别的什么?然后选定一种或几种存储结构来具体的决定后面的函数的主要风格。最后在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写的程序的质量。