zoukankan      html  css  js  c++  java
  • DS博客作业04--树大作业

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

    1.树的存储结构说明



        data:该结点内容
        son:指向该结点的孩子结点
        bro:指向该结点的兄弟结点
    

    2.树的函数说明

    头文件

    函数1:CreatBTree

    作用:按照孩子兄弟链建文档树

    设计思路:

        补充
    

    函数2:DestroyBTree

    作用:销毁树

    函数3:PrintBTree

    作用:更新tree文件

    设计思路:

        补充
    

    函数4:SeekTag 和 EndTag

    作用:寻找指点结点

    设计思路:

        补充
    

    函数5:NewTag

    作用:插入新标签

    设计思路:

        补充
    

    函数6:DeleteTag

    作用:删除指定标签

    设计思路:

        补充
    

    函数7:FileRead 和 DataChange


    作用:对文本进行预处理,FileRead函数是读取文件单行字符串合并为一个字符串,DataChange函数是
    将文本转发为字符串数组

    设计思路:

        补充
    

    主函数



    3.树结果演示

    • 建文档树:
      原html文档:

    建树tree文档:

    运行界面:

    • 查找元素:

    • 删除标签:

    • 插入标签:

    4.碰到问题

    • 问题一:最早思路上的问题。最早读题的时候,还以为应该用二叉树来实现,后来在建结构体时发现不对,文档树显然是一个”多叉树“的问题,应该采用孩子-兄弟存储的方式来处理该问题。
    • 问题二:html文档处理的问题。对于html文档的处理是一个挺麻烦的问题,是否要采用单个字符单个字符的判断?在经过讨论之后,我们采用了蔡德鑫的方法,也就是对html文档进行预处理,将html中的字符串,切割成一段一段的
      字符串,并用一个字符串数组来存储,之后的建树直接遍历该全局字符串数组即可获取需要的字符串。
    • 问题三:建树的时候没有将纯文本与非纯文本进行区分来建立结点,导致叶子节点不明确。后来创建结点的时候进行一个判断(用string类的find函数),问题就解决了。
    • 问题四:更新tree.txt文件的函数,我们最早的思路是只需要在最早的时候打开一次文件,之后一直传递文件指针就行了,无需多次开闭文件。但到最后,发现文件会出现重复写的问题。于是,我们认为应该先将原文件删除,于是去网上找了相关资料(remove函数)。但是这个问题,还是用在调用该函数后关闭再开启文件解决了......因为这样就已经可以轻松解决了。
    • 问题五:写删除函数的时候没有考虑到,当待删除的结点拥有兄弟结点时,如果直接将该节点删除,会导致其兄弟结点与其父结点的连接断开。解决方法是,在传参数时多增加一个形参PreBT(传递父节点)
      ,这样,在删除结点前先判断是否存在兄弟节点,若有兄弟结点,则需将父节点与待删除结点的兄弟连接,再将该节点删除;否则,直接删除。如图:

    5.小结

        这次的大作业
        好在:小组分工明确,思路清晰,并且函数递归写的好,并且熟练
        不好:删除插入的功能不完善,有小bug,查找函数脱离预期,无法输出整条路径,有局限性
    

    6.小组成员分配说明

        范华:完成main函数和其他同学的函数与main函数之间的调试和修改
        李谦:参与讨论、测试数据
        林钟鹏:完成NewTag和DeleteTag函数
        蔡德鑫:完成树的创建CreatBTree函数和PrintBTree函数还有文件的预处理
        白海槟:完成SeekTa函数和博客园
        古锦源:参与讨论、PPT编辑、测试数据
        
    

    7.展示你们讨论的照片

  • 相关阅读:
    特征提取算法(3)——SIFT特征提取算子
    特征提取算法(2)——HOG特征提取算法
    特征提取算法(1)——纹理特征提取算法LBP
    图像梯度
    插值算法
    边缘检测
    形态学滤波
    adaboost面试题
    12.敏捷估计与规划——Splitting User Stories笔记
    10.敏捷估计与规划——Financial Prioritization笔记
  • 原文地址:https://www.cnblogs.com/B-hai/p/10849746.html
Copyright © 2011-2022 走看看