参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。
有个亮点是利用字符在dos界面显示二叉树的结构形态。
里面包含了完整的源程序和实验报告文档。
实验报告包含了完整的步骤包括:一.抽象数据类型二叉树的定义二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现三.测试方案。
包括详细的测试函数四.测试结果。
对所有操作的测试过程中二叉树的变化截图。
五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。
六.实验总结和体会实现的基本操作如下:InitBiTree(&T)DestroyBiTree(&T)CreateBiTree(&T)ClearBiTree(&T)BiTreeEmpty(T)BiTreeDepth(T)Root(T)Value(T,e)Assign(T,&e,value)Parent(T,e)LeftChild(T,e)RightChild(T,e)LeftSibling(T,e)RightSibling(T,e)InsertChild(T,p,LR,c)DeleteChild(T,p,LR)PreOrderTraverse(T,Visit())InOrderTraverse(T,Visit())PostOrderTraverse(T,Visit())LevelOrderTraverse(T,Visit())下载清单:Base.h//全局常量、公共变量、公共函数等BiTree.h//二叉链表二叉树实现BiTree_Main.cpp//二叉链表二叉树测试程序SqBiTree.h//顺序存储二叉树实现SqBiTree_Main.cpp//顺序存储二叉树测试程序抽象数据类型实现-二叉树-实验报告.doc
1
二进制数相乘分治法C语言实现优化了二进制的乘法是的时间复杂度降低了
1
动态规划,要求:现有硬币n枚。
其价值为v(1,q,q^2……q^n),且每枚硬币重量为一,求价值为Y且重量最小的硬币集合时间复杂度为O(n*v)
2024/6/2 20:48:28 7.76MB coins.
1
排序作业选择题(每题2分,共22分)。
1.若表R在排序前已按键值递增顺序排列,则(  )算法的比较次数最少。
A.直接插入排序           B.快速排序     C.归并排序               D.选择排序2.对各种内部排序方法来说,(  )。
A.快速排序时间性能最佳                           B.归并排序是稳定的排序方法C.快速排序是一种选择排序                        D.堆排序所用的辅助空间比较大3. 排序算法的稳定性是指(  )。
A.经过排序之后,能使值相同的数据保持原顺序中的相对位置不变。
B.经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变。
C.排序算法的性能与被排序元素的数量关系不大D.排序算法的性能与被排序元素的数量关系密切4.如下序列中,(  )序列是大顶堆。
A. {4,5,3,2,1}              B. {5,3,4,1,2}       C. {1,2,3,4,5}              D. {1,2,3,5,4}5.若将{3,2,5,4,1}排为升序,则实施快速排序一趟后的结果是(  )(其中,枢轴记录取首记录)。
A. {1,2,3,4,5}                 B. {1,2,4,5,3}       C. {1,3,5,4,2}                 D. {2,5,4,1,3}.若将{1,2,3,4,5,6,7,9,8}排为升序,则(  )排序方法的“比较记录”次数最少。
A. 快速排序                  B. 简单选择排序    C. 直接插入排序              D. 冒泡排序7.若将{5,4,3,2,1}排为升序,则(  )排序方法的“移动记录”次数最多。
A. 快速排序                               B. 冒泡排序C. 直接插入排序                      D. 简单选择排序8.用简单选择排序将顺序表{2,3,1,3′,2′}排为升序,实施排序1趟后结果是{1,3,2,3′,2′},则排序3趟后的结果是(  )。
A. {1,2,3,3′,2′}                      B. {1,2,2′,3,3′}C. {1,2′,2,3,3′}                     D. {1,2,2′,3′,3}9.下列排序算法中,(   )排序在某趟结束后不一定选出一个元素放到其最终的位置上。
A.选择            B.冒泡          C.归并          D.堆10.下列排序算法中,稳定的排序算法是( )。
A.堆排序               B.直接插入排序  C.快速排序             D.希尔排序11.堆排序的时间复杂度是(   )。
A.O(n*n)                B.O(n*logn)      C.O(n)                  D.O(logn)填空题(每空4分,共4分)。
对n个元素进行归并排序,空间复杂度为        。
综合题(共24分)。
1.(共12分)有一组待排序的关键字如下:(54,38,96,23,15,72,60,45,83)分别写出希尔排序(d=5)、快速排序、堆排序、归并排序第一趟升序排序后的结果(其中堆排序的第一趟指序列完成初始建堆、将堆顶元素置为最末位置后其余元素调整为堆的结果)(每个3分)。
希尔排序:  快速排序:堆排序:归并排序: 2.(共12分)已知数据序列为(12,5,9,20,6,31,24),对该项数据序列进行排序,分别写出直接插入排序、简单选择排序、快速排序、堆排序、二路归并排序及基数排序第一趟升序排序结果(其中堆排序的第一趟指序列完成初始建堆、将堆顶元素置为最末位置后其余元素调整为堆的结果)(每个2分)。
直接插入排序:简单选择排序:快速排序:堆排序:二路归并排序:基数排序:
2024/5/3 7:27:51 15KB 排序作业 数据结构
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++60002张三C++702.发布的数据量有10w学生,1000课程,100w选课记录文件存储(及时的存储)3.变长字符串存储CMyString4.查询通过ID,通过名字,允许同名(查询时间复杂度:对数阶)5.统计选修"C++"课程的学生考试情况学生ID学生名成绩001张三70002李四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
有很多例题包含:陈述算法在最坏情况下的时间复杂度和平均时间复杂度;
这两种评估算法复杂性的方法各自有什么实际意义?最坏情况下的时间复杂度称最坏时间复杂度。
一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
2024/2/9 6:11:51 449KB 中科院 算法
1
实验三栈和队列3.1实验目的:(1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现;
(2) 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本操作在队列的顺序存储结构和链式存储结构上的实现。
3.2 实验要求:(1) 复习课本中有关栈和队列的知识;
(2) 用C语言完成算法和程序设计并上机调试通过;
(3) 撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要时给出多种可能的输入数据和运行结果)。
2023/11/12 23:07:01 136KB 栈和队列 实验报告
1
GRC(Graph-basedRelaxedClustering)是一种具有便捷性和自适应性的谱聚类算法,但对于大数据集,繁重的时间开销限制了其实用性.针对此不足,该文通过对GRC聚类指示向量进行约束并融合中心约束型最小包含球(Center-ConstrainedMinimalEnclosingBall,CCMEB)理论提出了大数据集快速谱聚类算法CCMEB-CGRC.该算法继承GRC的便捷性和自适应性的同时又具有渐近线性时间复杂度的优点,从而较好地解决了大数据集快速有效谱聚类的问题.仿真实验的结果验证了该算法的有效性和快速性.
2023/11/9 9:31:33 487KB 大数据 谱聚算法
1
改文件为排序算法、时间对比及时间复杂度直线拟合的源码,稍微加以修改即可在自己的代码中用于使用!
2023/10/11 9:39:09 7.39MB C++ C# 排序 曲线
1
习1-8什么是算法?怎样描述算法?怎样衡量算法的性能?【答】算法是对问题求解过程的一种描述,是为解决一类问题给出的一个确定的、有限长的操作序列。
算法特征包括:有穷性、确定性、输入、输出和可行性。
可以采用自然语言或伪码描述算法的设计思想,采用程序设计语言实现算法。
采用渐进分析法衡量算法性能,用时间复杂度O(f(n))表示所花费时间的量级,即时间效率;
用空间复杂度O(S(n))表示算法执行过程中所需要的额外空间。
2023/9/17 16:21:27 12.47MB 数据结构java 第四版
1
共 45 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡