采用一棵二叉树表示一个家谱关系,要求具有以下功能:①、文件操作功能,即家谱记录的输入、家谱记录的输出、清除全部文件记录和将家谱记录存盘。
②、家谱操作功能,即用括号表示法输出家谱二叉树、查找某人的所有儿子、查找某人的所有祖先。
2023/11/20 10:43:44 378KB 数据结构 二叉树 i/o流
1
这个代码是一个四叉树的C#实现,使用四叉树文成一个可视项目。
四叉树是一种树结构可以用于编码和2D碰撞检测。
多用在2D碰撞检测中,在大量的碰撞检测中可以提高效率,但结构略复杂。
2023/11/12 3:11:09 18KB 四叉树 QuadTree C# 碰撞检测
1
/*这是一个在字符环境中,用ASCII码打印二叉树形状的算法。
采用层次遍法。
算法拙劣,仅供初学者做练习,(本人也是初学者,自学数据结构,刚好学到这二叉树这一章,搞几个二叉的例题,却不知道其构造形状,想调用图形API做个美观点的,却有点偏离本章的学习目的,只好用字符打印,linux环境中打印的还可以,DOS屏幕如果不够宽您输出到文本,如果您有更好的算法一定不吝赐教。
我的QQ:137241638mail:hnflcp@139.com*/voidPBTNodePrint(PBTNode*pb[],intn,inth){ intl=-1, r=0, i,j,k, end; charc; PBTNode*p; if(ndata); printf("\n"); return; } h=h-pb[0]->level+2; for(k=0;kparent->space; for(;jlrflag==0)?'/':'\\'; printf("%c",c); } printf("\n"); } for(i=0;ilrflag==0) p->space=p->parent->space+l; else p->space=p->parent->space+r; } for(i=0,j=0;idata); } printf("\n");}//循环打印所有层的数据
1
二叉树的高度和深度
2023/11/10 13:30:58 6KB 课程作业
1
matlab程序,用于显示四叉树分割后的示意图。
这是个主程序,不是函数,运行前需要修改程序所读入的图像位置。
2023/11/10 8:32:24 13KB 四叉树分割 matlab
1
1.要求对文件进行Huffman编码的算法,以及对一编码文件进行解码的算法2.熟练掌握二叉树的应用;具体要求如下:最小冗余码/哈夫曼码
2023/11/7 17:07:19 1.81MB Huffman编码
1
binarytree:用于研究二叉树的Python库
2023/11/5 16:41:45 55KB python learning algorithm data-structure
1
文本处理是现代化计算机应用的重要领域。
文本由字符组成,字符以某种编码形式存储在计算机中。
每个字符的编码可以是相等长度的,也可以是不等长度的。
我们熟知的ASCII编码是等长编码。
为了提高存储和处理文本的效率,在一些计算机应用场合,如数据通信,常采用不等长的编码,对常用的字符用较少的码位编码,不常出现的字符用较多的码位编码,从而减少文本的存储长度。
哈夫曼编码就是用于此目的的不等长编码方法。
当然,编码的对面就有译码。
本课题中,首先是构造哈夫曼树。
给定一组权值,以此作为叶结点的权值,可以构造多棵扩充二叉树,它们通常具有不同的加权路径长度。
其中具有最小加权路径长度的扩充二叉树,用于构造高效的不等长编码。
哈夫曼给出了构造具有最小加权路径长度的扩充二叉树的算法,称位哈夫曼算法。
用哈夫曼算法构造的扩充二叉树称为哈夫曼编码树或哈夫曼树。
当然,还有编码和译码部分。
本系统的前端开发工具是VisualC++6.0。
具有输入字符集大小及权值大小,构造哈夫曼树,并对用户输入的字符串进行编码以及译码还有退出四种功能。
本程序经过测试后,功能均能实现,运行稳定。
2023/11/3 6:12:14 2.52MB 哈夫曼树,编码,译码,权值
1
24位真彩色图转256色位图,八叉树颜色量化
2023/11/2 10:11:46 3.77MB 24位真彩色图 256色位图 八叉树
1
1.对于二叉排序树,下面的说法()是正确的。
A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合B.对二叉排序树进行层序遍历可得到有序序列C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/22.在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。
A.O(n)B.O(log2n)C.O(n*log2n)D.O(n2)3.静态查找与动态查找的根本区别在于()。
A.它们的逻辑结构不一样B.施加在其上的操作不同C.所包含的数据元素类型不一样D.存储实现不一样4.已知一个有序表为{12,18,24,35,47,50,62,83,90,115,134},当折半查找值为90的元素时,经过()次比较后查找成功。
A.2B.3C.4D.55.已知数据序列为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为()。
A.4B.5C.6D.76.设散列表表长m=14,散列函数H(k)=kmod11。
表中已有15,38,61,84四个元素,如果用线性探测法处理冲突,则元素49的存储地址是()。
A.8B.3C.5D.97.平衡二叉树的查找效率呈()数量级。
A.常数阶B.线性阶C.对数阶D.平方阶8.设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是()。
A.LLB.LRC.RLD.RR二、填空题(每空3分,共24分)。
1.在有序表A[1..18]中,采用二分查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为。
2.利用逐点插入法建立序列(61,75,44,99,77,30,36,45)对应的二叉排序树以后,查找元素36要进行次元素间的比较,查找序列为。
3.用顺序查找法在长度为n的线性表中进行查找,在等概率情况下,查找成功的平均比较次数是。
4.二分查找算法描述如下:intSearch_Bin(SSTST,KTkey){low=1;high=ST.length;while(low<=high){mid=(low+high)/2;if(key==ST.elem[mid].key)returnmid;elseif(key<ST.elem[mid].key);else;}return0;}5.链式二叉树的定义如下:typedefstructBtn{TElemTypedata;;}BTN,*BT;6.在有n个叶子结点的哈夫曼树中,总结点数是。
三、综合题(共52分)。
1.(共12分)假定关键字输入序列为19,21,47,32,8,23,41,45,40,画出建立二叉平衡树的过程。
2.(共15分)有关键字{13,28,31,15,49,36,22,50,35,18,48,20},Hash函数为H=keymod13,冲突解决策略为链地址法,请构造Hash表(12分),并计算平均查找长度(3分)。
ASL=3.(共10分)设关键字码序列{20,35,40,15,30,25},给出平衡二叉树的构造过程。
4.(共15分)设哈希表长为m=13,散列函数为H(k)=kmod11,关键字序列为5,7,16,12,11,21,31,51,17
2023/10/29 19:17:51 88KB 数据结构 第九章  查找 作业
1
共 228 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡