算法中将一条线视为一个结点,采用广度优先搜索,利用树结构存储搜索结果,算法效率高,在武汉地铁11条线路190余个站点的线网图中测试,任意两点间的所有路径平均耗时0.2秒。
只要对算法中的费用矩阵做调整,即可适用于公交等其他网络。
2024/3/26 14:48:14 700KB 所有路径 算法 高效 地铁
1
C++信号放大器(1)运用二叉树的定义将左孩子、右孩子、结点值、权值即与父结点的衰减量、以及当前结点的最大衰减量联系起来。
(2)设置信号放大器函数该函数主要实现判断是否超过容忍值并在合适位置放置信号放大器使其数量最少。
首先将当前结点最大衰减量D初始化,当只有右子树时即左子树为空,计算出当前结点的最大衰减量,判断当超过容忍值时则放置信号放大器并输出;
当只有左子树时即右子树为空,计算出当前结点的最大衰减量,判断当超过容忍值时则放置信号放大器并输出;
当左右子树都存在并左子树的衰减量大于右子树时则计算当前结点最大衰减量D并判断是否超过容忍值并输出,继续进一步比较其右子树的当前最大衰减量与右子树的衰减量之和和其左子树的衰减量,若大于则更新D,并判断是否超过容忍值并输出,再进一步比较其右子树的衰减量与其左子树的衰减量,若大于则再更新D;
当左右子树都存在且右子树的衰减量大于左子树时,比较方法与前者相似,颠倒左右即可。
通过此算法可将放置的放大器数目最少。
(3)主函数主函数中包括输入信息时的声明及相关函数的调用。
四调试分析该程序在设置信号放大器的比较算法上有些麻烦,需要进行很多比较。
结点信息的输入也比较麻烦,很浪费时间,还有就是输出结果时最好将二叉树的具体结构一同输出便于检查,并且形象直观。
1
假设以如下说明的三元组(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
共 143 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡