二叉树建立排序遍历插入删除源代码C语言
目 录
摘 要…………………………………………………………………2
序 言…………………………………………………………………3
1.采用类C语言定义相关数据类型………………………………4
2.各模块流程图及伪码算法………………………………………5
3.函数的调用关系图………………………………………………8
4.调试分析 …………………………………………………………10
A.调试中遇到的问题及对问题的解决方法…………………………9
B.算法的时间复杂度和空间复杂度…………………………………9
5.测试结果 …………………………………………………………11
设计总结 ……………………………………………………………12
参考文献 ……………………………………………………………14
致 谢…………………………………………………………………15
附录:源程序(带注释)……………………………………………16
摘要
“数据结构”是计算机程序设计的重要理论技术基础,是学习、设计和实现操作系统、编译系统、数据库系统和其它应用系统的重要基础。
本程序实现了二叉排序树的建立、存储、遍历、平均查找长度、插入、删除等相关操作,进一步加强了我对算法与数据结构中关于二叉排序树问题的知识的掌握,培养了我对于实际问题的解决能力。
关键词: 二叉树;数据结构;查找;删除
序 言本文来自优~文*论/文|网
数据结构是计算机科学的理论基础和软件设计的技术基础,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现。数据结构不仅是计算机专业的核心课程,而且已成为其他理工专业的热门专业选修课。
数据结构是研究问题求解技术、算法设计、程序设计的基础。它是随着数字电子计算机的产生和发展而逐步成长起来的新学科。计算机加工处理的对象不仅是纯数值数据还包括字符、文本、图形、图像、声音等多种复杂的具有一定结构的数据。人们通常称这类不局限于数值计算的问题为非数值问题。对数值问题的求解主要是在简单的数据结构基础上进行复杂的函数计算,而求解非数值问题则往往需要处理很多性质不同的数据,这些数据之间又经常存在着错综复杂的相互关系。如何在计算机中有效地存储和表示这些数据及其相互关系,使之能够在程序中被有效地使用,就是数据结构课程要讨论的一些最重要的问题。
了解数据结构就是为了更好的使用数据结构,本文对数据结构的个别方面进行讨论。通过该题目的设计过程,可以加深理解二叉链表的逻辑结构、存储结构,掌握二叉链表基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构知识,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
1.采用类c语言定义相关的数据类型
struct tree /*声明树的结构*/
毕业论文http://www.youerw.com
struct tree *right;
};
typedef struct tree treenode; /*声明新类型树的结构*/
typedef treenode *b_tree;
void main()
{
char ch;
int len;
bistree root=NULL;
int m,i,index; /*读入输入值所用的暂存变量*/
float max=0;
int nodelist[20]; /*声明存储输入数据之数组*/
int value;
printf("\nCreate the Tree:\n") ;
printf("输入树的个数:") ;
scanf("%d",&len);
index=0;
while(len<=0,len--)
{
printf("输入第%d个元素:",index+1);
scanf("%d",&value); /*读取输入值放到变量value*/
nodelist[index]=value;
index=index+1;
}
printf("排序输入下为:");
root=create_btree(nodelist,index);
inorder(root);
for(m=0;m<index;m++)
{
tree_search(root,nodelist[m]);
max+=counter; /*计算average查找长度*/
}
printf("树的平均查找长度: %.2f\n",max/index); /*输出average查找长度*/
while(1)1471