假设以如下说明的三元组(F、C、L/R)序列输入一棵二叉树的诸边(其中F表示双亲结点的标识,C表示孩子结点标识,L/R表示C为F的左孩子或右孩子),且在输入的三元组序列中,C是按层次顺序出现的。
设结点的标识是字符类型。
F=‘^’时C为根结点标识,若C亦为‘^’,则表示输入结束。
试编写算法,由输入的三元组序列建立二叉树的二叉链表,并以中序序列输出。
^ALABLACRBDLCELCFRDGRFHL^^L
2024/3/17 10:31:56 199KB 二叉树 先序 中序 遍历
1
1. 在现有机器硬盘上开辟100M的硬盘空间,作为设定的硬盘空间。
2. 编写一管理程序simdisk对此空间进行管理,以模拟Linux文件系统,要求:(1) 盘块大小1k(2) 空闲盘块的管理:Linux位图法(3) 结构:超级块,i结点区,根目录区3. 该simdisk管理程序的功能要求如下:(1) info:显示整个系统信息(参考Linux文件系统的系统信息),文件可以根据用户进行读写保护。
目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。
(2) cd…:改变目录:改变当前工作目录,目录不存在时给出出错信息。
(3) dir…:显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。
(4) md…:创建目录:在指定路径或当前路径下创建指定目录。
重名时给出错信息。
(5) rd…:删除目录:删除指定目录下所有文件和子目录。
要删目录不空时,要给出提示是否要删除。
(6) newfile…:建立文件。
(7) cat…:打开文件。
(8) copy…:拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到模拟Linux文件系统中的/test/data目录,windows下D:盘的当前目录为D:\data,则使用命令:simdiskcopyD:\data\sample\test.txt/test/data或者:simdiskcopyD:sample\test.txt/test/data(9) del…:删除文件:删除指定文件,不存在时给出出错信息。
(10) check:检测并恢复文件系统:对文件系统中的数据一致性进行检测,并自动根据文件系统的结构和信息进行数据再整理。
4. 程序的总体流程为:(1) 初始化文件目录;
(2) 输出提示符,等待接受命令,分析键入的命令;
(3) 对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。
2024/3/15 8:15:26 188KB 文件系统 C++ Linux
1
本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。
2024/3/11 21:20:26 306KB C 简单的管理
1
,基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。
任何整形变量的范围是-(2^15-1)~(2^15-1)。
输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
1
1. 网格分辨率>100x1002. 网格结点数据为随机生成的[0,1]数据3. 等值为0.2、0.84. 将等值线用分别用不同颜色标示
2024/2/13 23:58:43 233KB 等值线
1
用Visualc++编写的一个简单的校园导游系统是我们数据结构的课程设计用mgraphinitgraph()函数来初始化图,使用字符串的函数strcpy来初始化信息和名称,再给各弧的权值赋值,由于全部赋值在找路径的过程中太多了,所以只给部分赋值了。
用intlocatevex(mgraphc,intv)来查找景点在图中的序号(由于之后继续增加或者减少结点)两景点间的所有路径用函数intallpath(mgraphc)找到所有的路径voidpath(mgraphc,intm,intn,intk)用于打印序号为m,n景点间的一条路径在其中,当走完一条路径后,将其存储在d[k]中,直到d[k]==n时输出这条路径,然后跳出,把d[k]点的visited设为0,继续进行下个顶点。
直至到所有的顶点都完成。
用voidshortestpath_dij(mgraphc)函数来计算两个顶点间的最短路径,使用迪克斯特拉算法用voidshortestpath_floyd(mgraphc)函数来计算两个顶点间的最短路径,使用floyd算法
2024/2/10 13:36:07 19KB 导游系统
1
本程序是采用带头结点的单向循环链表写成的,当指针指到要出列的结点时,先输出结点的序列号,再删除之,直到所有结点都出列完
2024/1/29 22:55:48 834B 有头结点 单向循环链表
1
有限元法的基本思想是将结构离散化,用有限个容易分析的单元来表示复杂的对象,单元之间通过有限个结点相互连接,然后根据变形协调条件综合求解。
由于单元的数目是有限的,结点的数目也是有限的,所以称为有限元法。
2024/1/20 16:14:37 3.36MB 有限元 应用
1
1.一棵二叉树的顺序存储情况如下:树中,度为2的结点数为()。
A.1B.2C.3D.42.一棵“完全二叉树”结点数为25,高度为()。
A.4B.5C.6D.不确定3.下列说法中,()是正确的。
A.二叉树就是度为2的树B.二叉树中不存在度大于2的结点C.二叉树是有序树D.二叉树中每个结点的度均为24.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是()。
A.CABDEFGB.BCDAEFGC.DACEFBGD.ADBCFEG5.线索二叉树中的线索指的是()。
A.左孩子B.遍历C.指针D.标志6.建立线索二叉树的目的是()。
A.方便查找某结点的前驱或后继B.方便二叉树的插入与删除C.方便查找某结点的双亲D.使二叉树的遍历结果唯一7.有abc三个结点的右单枝二叉树的顺序存储结构应该用()示意。
A.abcB.ab^cC.ab^^cD.a^b^^^c8.一颗有2046个结点的完全二叉树的第10层上共有()个结点。
A.511B.512C.1023D.10249.一棵完全二叉树一定是一棵()。
A.平衡二叉树B.二叉排序树C.堆D.哈夫曼树10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是()的二叉树。
A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子11.一棵二叉树的顺序存储情况如下:123456789101112131415ABCDE0F00GH000X结点D的左孩子结点为()。
A.EB.CC.FD.没有12.一棵“完全二叉树”结点数为25,高度为()。
A.4B.5C.6D.不确定二、填空题(每空3分,共18分)。
1.树的路径长度:是从树根到每个结点的路径长度之和。
对结点数相同的树来说,路径长度最短的是完全二叉树。
2.在有n个叶子结点的哈夫曼树中,总结点数是2n-1。
3.在有n个结点的二叉链表中,值为非空的链域的个数为n-1。
4.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是任一结点无左孩子的二叉树。
5.深度为k的二叉树最多有个结点,最少有k个结点。
三、综合题(共58分)。
1.假定字符集{a,b,c,d,e,f}中的字符在电码中出现的次数如下:字符abcdef频度9122023155构造一棵哈夫曼树(6分),给出每个字符的哈夫曼编码(4分),并计算哈夫曼树的加权路径长度WPL(2分)。
(符合WPL最小的均为哈夫曼树,答案不唯一)哈夫曼编码:2.假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字符构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。
要求:(1)为这7个字符设计哈夫曼树(6分)。
(2)据此哈夫曼树设计哈夫曼编码(4分)。
(3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?(4分)(1)为这7个字符设计哈夫曼树为(符合WPL最小的均为哈夫曼树,答案不唯一):(2)哈夫曼编码为:a:01;b:001;c:100;d:0001;e:101;f:11;g:0000(3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?采用等长码,100个字符需要300位二进制数,采用哈夫曼编码发送这100个字符需要261二进制位,压缩了30
1
图的基本操作与实现【问题描述】:自选存储结构,实现对图的操作。
【基本要求】:(1)自选存储结构,输入含n个顶点(用字符表示顶点)和e条边的图G;
(2)求每个顶点的度,输出结果;
(3)指定任意顶点x为初始顶点,对图G作DFS遍历,输出DFS顶点序列(提示:使用一个栈实现DFS);
(4)指定任意顶点x为初始顶点,对图G作BFS遍历,输出BFS顶点序列(提示:使用一个队列实现BFS);
(5)输入顶点x,查找图G:若存在含x的顶点,则删除该结点及与之相关联的边,并作DFS遍历(执行操作3);
否则输出信息“无x”;
(6)判断图G是否是连通图,输出信息“YES”/“NO”;
(7)如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图G的邻接表,即复制图G,然后再执行操作(2);
反之亦然。
(8)自选图的其它任一种操作实现之。
1
共 151 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡