3. 由TXT文本中读入一系列的数据,建立一棵平衡二叉树,并实现查找任何数据的功能,并能打印出结点的访问路径。 (Makefile编译)
2021-04-29 23:52:27 19KB JAVA TXT 平衡二叉树 查找
1
攀枝花学院本科学生课程设计任务书 题 目 二叉排序树与平衡二叉树的实现 1、课程设计的目的 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。 3) 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等) (1) (1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T; (2)对二叉排序树T作中序遍历,输出结果; (3)计算二叉排序树T查
2021-04-08 22:02:58 94KB 数列L 结点 二叉排序树 平衡二叉树
1
2015广工数据结构实验--平衡二叉树(包含源码和实验报告
2021-01-11 21:44:51 156KB 广工 数据结构实验 平衡二叉树
1
1本程序在vc++6.0编译通过并能正常运行。 2主界面 程序已经尽量做到操作简便了,用户只需要根据提示一步步进行操作就行了。 六思考和总结: 这个课程设计的各个基本操作大部分都在我的综合性实验中实现了,所以做这个主要攻克插入和删除这两个算法!其中插入在书本上已经有了,其中的右平衡算法虽然没有给出,但通过给出的左平衡算法很容易就可以写出右平衡算法。所以最终的点就在于删除算法的实现!做的过程中对插入算法进行了非常非常多次的尝试!花了非常多的时间,这其中很多时候是在对程序进行单步调试,运用了VC6。0的众多良好工具,也学到了很多它的许多好的调试手段。 其中删除算法中最难想到的一点是:在用叶子结点代替要删除的非叶子结点后,应该递归的运用删除算法去删除叶子结点!这就是整个算法的核心,其中很强烈得体会到的递归的强大,递归的最高境界(我暂时能看到的境界)! 其它的都没什么了。选做的那两个算法很容易实现的: 1合并两棵平衡二叉排序树:只需遍历其中的一棵,将它的每一个元素插入到另一棵即可。 2拆分两棵平衡二叉排序树:只需以根结点为中心,左子树独立为一棵,右子树独立为一棵,最后将根插入到左子树或右子树即可。 BSTreeEmpty(BSTree T) 初始条件:平衡二叉排序树存在。 操作结果:若T为空平衡二叉排序树,则返回TRUE,否则FALSE. BSTreeDepth(BSTree T) 初始条件:平衡二叉排序树存在。 操作结果:返回T的深度。 LeafNum(BSTree T) 求叶子结点数,非递归中序遍历 NodeNum(BSTree T) 求结点数,非递归中序遍历 DestoryBSTree(BSTree *T) 后序遍历销毁平衡二叉排序树T R_Rotate(BSTree *p) 对以*p为根的平衡二叉排序树作右旋处理,处理之后p指向新的树根结点 即旋转处理之前的左子树的根结点 L_Rotate(BSTree *p) 对以*p为根的平衡二叉排序树作左旋处理,处理之后p指向新的树根结点, 即旋转处理之前的右子树的根结点 LeftBalance(BSTree *T) 对以指针T所指结点为根的平衡二叉排序树作左平衡旋转处理, 本算法结束时,指针T指向新的根结点 RightBalance(BSTree *T) 对以指针T所指结点为根的平衡二叉排序树作右平衡旋转处理, 本算法结束时,指针T指向新的根结点 Insert_AVL(BSTree *T, TElemType e, int *taller) 若在平衡的二叉排序树T中不存在和e有相同的关键字的结点, 则插入一个数据元素为e的新结点,并返回OK,否则返回ERROR. 若因插入而使二叉排序树失去平衡,则作平衡旋转处理 布尔变量taller反映T长高与否 InOrderTraverse(BSTree T) 递归中序遍历输出平衡二叉排序树 SearchBST(BSTree T, TElemType e, BSTree *f, BSTree *p) 在根指针T所指的平衡二叉排序树中递归的查找其元素值等于e的数据元素, 若查找成功,则指针p指向该数据元素结点,并返回TRUE,否则指针p 指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲, 其初始调用值为NULL Delete_AVL(BSTree *T, TElemType e, int *shorter) 在平衡二叉排序树中删除元素值为e的结点,成功返回OK,失败返回ERROR PrintBSTree_GList(BSTree T) 以广义表形式打印出来 PrintBSTree_AoList(BSTree T, int length) 以凹入表形式打印,length初始值为0 Combine_Two_AVL(BSTree *T1, BSTree T2) 合并两棵平衡二叉排序树 Split_AVL(BSTree T, BSTree *T1, BSTree *T2) 拆分两棵平衡二叉树 } (2)存储结构的定义: typedef struct BSTNode { TElemType data; int bf; //结点的平衡因子 struct BSTNode *lchild, *rchild;//左.右孩子指针 }BSTNode, *BSTree;
2020-01-05 00:24:26 40KB 二叉树 二叉树排序树 平衡二叉树
1
1, 利用平衡二叉树实现一个动态查找表,实现动态查找表的三种基本功能:查找,插入、删除和附加的两种功能:合并、分裂平衡二叉树。 2, 操作界面要给创建、查找、插入、删除、合并和分裂六种操作供选择。每种操作均要提示输入关键字。每次插入和删除一个节点后,应更新平衡二叉树的显示。该二叉树的显示采用凹入表形式。
2020-01-03 11:42:58 346KB 数据结构 课程设计 C语言 源代码
1
本代码用c语言实现了平衡二叉树这一数据结构,同时实现了基本查找,插入,删除操作,都是自己精心设计的算法,花了很多功夫。。
2020-01-03 11:42:30 272KB 平衡二叉树 c语言
1
首先 声明 有几个可能没有做完(就一两个) 大家下了别骂人啊 数据结构—课程设计 包括 一元稀疏多项式计算器 迷宫问题 成绩分析问题 图的基本操作 实现以及背包问题 农夫过河问题的求解 13 停车厂模拟管理程序的设计与实现 12 简易电子表格的设计 11 简单个人书管理系统的设计与实现 6 二叉排序树与平衡二叉树的实现 9 内部排序算法的性能分析
2019-12-26 03:41:02 769KB 课程设计 java 数据结构 迷宫
1
该套代码是博主在学习数据结构的平衡二叉树时总结整理的一套平衡二叉树的代码,包括平衡二叉树的创建,插入,旋转,遍历等一套完善的代码,亲自测试过,代码保证是对的。
2019-12-21 22:10:18 7KB 平衡二叉树
1
硕博工作室 出品 淘宝链接1: https://item.taobao.com/item.htm?spm=a230r.1.14.16.54451998PFAs8u&id=577649017846&ns=1&abbucket=14#detail 淘宝链接2: https://item.taobao.com/item.htm?spm=a230r.1.14.68.54451998PFAs8u&id=577845046440&ns=1&abbucket=14#detail 学生管理系统项目要求 功能: 1. 完成 学生, 课程,选课,成绩 的增删改查 学生ID 学生名 选课名 成绩 001 张三 C++ 60 002 张三 C++ 70 2. 发布的数据量 有10w学生,1000课程, 100w选课记录 文件存储(及时的存储) 3. 变长字符串存储CMyString 4. 查询 通过ID, 通过名字,允许同名(查询时间复杂度:对数阶) 5. 统计选修"C++"课程的学生考试情况 学生ID 学生名 成绩 001 张三 70 002 李四 80 支持: (1) 通过学号ID,查询学生信息。 (2) 通过学生姓名,查询学生信息。 (3) 通过课程ID,查询课程信息。 (4) 通过课程名,查询课程信息。 (5) 通过课程ID查询选修了该课程的学生以及成绩 (6) 通过学生ID查询该学生选修的课程信息 插入: (1)新增学生(ID, 名字) (2)新增课程(ID,名字) (3)新增选课记录(学生ID, 课程ID, 分数) 删除: (1) 删除学生(ID, 名字) (2) 删除课程(ID,名字) (3) 删除选课记录(学生ID, 课程ID, 分数) 6. 不能使用三方的函数 stl... 采用平衡二叉树的可靠管理,源码规范
1
一个详细的课程设计,包含了旋转操作,插入,删除,合并,分裂,凹入表打印等重点操作。验证所有非法操作,分享给大家学习。
2019-12-21 21:43:53 253KB 平衡二叉树
1