1.树的存储结构说明


定义的结构体中,name是用于存放文件名称,string类型是字符串类型,定义了child孩子结点和brother兄弟结点。

2.树的函数说明

1.main函数


main函数中主要实现的功能是打开文件并且把功能函数进行拼接(int number没有实质性用处,可以忽略掉)。首先就是对各种变量的定义了,定义文件名,指针,并且对指针进行动态内存分配。接下来打开文件,并且执行建树和插入结点操作。然后输出节点位置并且找出其对应的路径。

2.CreatTree函数


CreatTree函数的功能主要是对main函数中读出的文件名生成一棵数进行存储,首先定义的是catalog和s1变量,s1变量就是对文件名进行读取和存储,是建树操作的主要字符串定义,而catalog的功能就比较玄妙了,它的定义是防止保存完名称之后s1消失,这个在后面调试遇到的问题里面会提到。接下来的index变量是对文件名的读取开关,也就是当循环变量1=index时进行读取,读取到“/"的出现时再停止读取,此时为了读取下一个文件名,把指针后移,也就是index=i+1。由于使用的遍历方法是层次遍历,所以读完之后如果判断brother为NULL,那么就移动至尾部,在读完一层的时候需要把指针指向child也就是下一层。由于最后一个文件的特殊性,没有"/"作为停止开关,所以定义了s2对最后一个文件名的读取和存入,同样的catalog用于防止s2消失。总的来说本函数的主要功能就是读取文件名和建树。

Insert函数


Insert函数的作用是把建好的数插入节点进去,首先进行判断目录名是否存在,若存在直接返回不需要插入,若不存在则进行遍历插入,具体操作如图所示。这个函数相对简单一些,所以不进行太多的介绍。

Print函数

Print函数用于输出节点,使用的方法是递归法则,首先放置一个判断是否到递归口,是则返回,不是则继续递归遍历,使用for循环进行输出空格,使其具有每一个层次,在输出名称,最后进行递归。这个函数的难度在于对空格多少以及递归和space变量的运用,space变量的作用在于判断每个名称之前的空格需要多少。

FindRoad函数


最后一个函数是FindRoad找路径函数,顾名思义就是找到main函数里面输入的文件x并且把它的路径输出,这个函数的判断比较多,首先进行的两个判断,若bt->brother->name为要查找名称,则不输出,因为需要查找的结点与bt->brother在同一层。接下来两个判断同上,运用的是递归,判断的跟上面的两个if是一样的。这个函数刚开始思路错误了,以至于修改了有段时间后面又开始重写,所以耽误的比较长的时间,后面的删除函数也没写下去。

3.树结果演示

4.碰到问题

由于是大作业所以碰到的问题还是蛮多的,首先是各个函数在单独写的时候,出现了不一样的问题。先说说主函数吧,在实现主函数的时候,刚开始定义了很多的变量,应为对函数中的递归不了解,所以用了for循环,但是后面在同学的指导下,直接改成打开文件,然后把相应的函数插进去,不需要再进行其他的操作,也是方便了很多。然后就是Print函数了,这个函数当初设计的时候没有注意到空格的输出,导致层次关系看起来很混乱,之后在百度上查找了相应的代码和分析,重新定义了一个space变量用于决定空格的多少。最后一个就是FindRoad函数了,这个函数在一开始设计的时候思路错误,导致整个树的路径都无法被查找和找到,后面修改了一下,换了一个方向去写, 直接用递归加上判读来实现查找路径,就方便了很多。

5.小结

本次作业好的地方就是代码的运行上,基本的功能都有实现,而且每个函数对应的功能和思路都比较清晰,出现运行错误的地方也比较少,整体的实现方面和代码量方面都是比较好的。不足的地方在于相对有些功能还是可以继续去完善和修改,比如可以增加一个删除节点的函数,这个函数相对其他函数会复杂的多。插入之后也可以写进去一个查看的片段,查看插入之后的树的结构。总之感谢组内的所有同学的辛苦付出,也感谢老师对大作业的肯定和点评。

6.小组成员分配说明

小组成员:陈梓灿(队长)曾俊伟 王鑫杰 张伟龙 林炜 周秋斌 周仁杰

参与内容:

1.main:林炜
2.CreatTree和Insert:陈梓灿 王鑫杰
3.Print:周秋斌 张伟龙
4.FindRoad:曾俊伟 周仁杰
贡献度:主要贡献者 陈梓灿
最后得分:暂时未知

7.photo

转载于:https://www.cnblogs.com/lw123---/p/10850253.html

DS博客大作业--树 (陈梓灿组)相关推荐

  1. DS博客大作业--树(李天明组)

    DS博客大作业--树 大作业博客要求 (10分) 1.树的存储结构说明 .树采用的是链式存储结构. .这段代码中定义了两个结构体.第一个是自定义为Name类型的结构体,里面的成员有字符串str和类型为 ...

  2. DS博客大作业--树

    1.树的存储结构说明 树节点结构体 data:文件名 brother:兄弟节点 child:孩子节点 type:节点的类型,0为文件,1为目录 h:节点所在的层次 2.树的函数说明 头文件 函数1:C ...

  3. DS博客作业03--栈和队列

    DS博客作业03--栈和队列 1.本周学习总结(0--1分) 谈谈你对栈和队列结构的认识及学习体会. 这章有认真预习,但做题还要依靠书,记不住,可能还需要多加练习,在PTA上的题只做了栈的,队列的做得 ...

  4. OO第三次博客总结作业

    OO第三次博客总结作业 1.规格化设计的大致发展历史和为什么得到了人们的重视  发展历史...上网搜索了一圈...什么都没搜索到,只能谈谈自己对规格化设计重要性的一些看法. 规格化设计,顾名思义,是有 ...

  5. 利用博客提交作业的程序设计课程实践模式

    (本文基于本人近三年来的工作写成,发表于<计算机教育>2014年第18期) 利用博客提交作业的程序设计课程实践模式 贺利坚  卢云宏 (烟台大学 计算机学院,山东 烟台 264005)  ...

  6. 从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!...

    从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!: "" (Via.) 转载于:https://www.cnblogs.com/devo ...

  7. c语言数据结构大作业,数据结构大作业——树(和广义表)

    数据结构大作业--树(和广义表) 以广义表形式输入一棵树,然后以合适的比例将这棵树展示出来 (如何构造一个广义表已经略去) 对于广义表化的树,我们采用的树节点类似二叉链表形式的存储. 首先设计结点内容 ...

  8. DS博客作业04--树大作业

    1.树的存储结构 本组采用的树的存储结构为链式结构,选择如图所示的结构体 Name为结点的名称 LevelNum为孩子节点的个数 *Children[20]用来指向不同的孩子结点(类似于二叉树的结构体 ...

  9. DS博客作业07--查找

    1.本周学习总结(0--2分) 1.1.思维导图 1.2谈谈你对查找运算的认识及学习体会. 2.PTA实验作业(6分) 本周要求挑3道题目写设计思路.调试过程.设计思路用伪代码描述.题目选做要求: 原 ...

最新文章

  1. VS2010 win32项目windows窗体程序 向导生成代码解析
  2. tensorflwo-gpu win10_64bit 的安装版本问题
  3. CentOS Linux 7.3 1611 (Core) 配置静态IP地址
  4. 使用命令行对Android应用签名
  5. Delphi对话框初始地址InitialDir
  6. vim编辑和命令模式、实践
  7. HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching
  8. cf不能全屏win7的解决方法_win7系统屏幕显示brightness如何解决 win7系统屏幕显示brightness解决方法【详解】...
  9. Java中GUI中菜单栏
  10. 自定义检验注解_多注解自定义参数校验
  11. SQL之总结(四)---null问题的处理
  12. 【论文】(COPRA)Finding overlapping communities in networks by label propagation
  13. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xff in position 0: illegal multibyte sequence
  14. 密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等...
  15. 移动宽带连不上微软服务器,移动宽带有些网站打不开怎么解决?
  16. Regular DLL
  17. 如何获取服务器的 CA 证书?
  18. mysql计算连续天数,mysql连续登录天数,连续天数统计
  19. Word每日一个小技巧:实现方框内点击自动打√[超详细版]
  20. JAVA学习【IDEA转中文】

热门文章

  1. android apk反编译(获取源码,资源文件等)
  2. Linux终端一直输出login,Linux tty pty console区别
  3. FLAG_ACTIVITY_CLEAR_TOP:
  4. Python——文档
  5. 简单同步firefox书签和IE收藏夹
  6. 论文-Geography-Aware Sequential Location Recommendation
  7. 进华科计算机 湖北省考生排名,全国考生最满意高校名单出炉,湖北华科居首,你的学校上榜了吗?...
  8. 【Unity3D】Unity声音与录音与麦克风实时播放
  9. 实现shiro-remember功能
  10. 《LeetCode》数据结构入门板块