zoukankan      html  css  js  c++  java
  • 树类模块制作心得

    开始设计的时候,总把树类和树结点类混淆,本来各个树类之间应该有继承关系,而我把结点类也来个继承。而结点类是自引用的(自反的,我这样叫),结点的一个实例要引用结点的另一些实例的集合,那么一旦由结点类A扩展出结点类B的时候,B是无法通过显示转换的方式转换为A结点的,于是这就与树类的继承相矛盾了。

    这个问题想了N个月,没想明白。曾经放弃过,最近要做另一个模块,其中需要树类结构,所以又回来考虑,最后终于想明白了,就是上面所说的原因。树结点并不需要继承,只需要在各个继承的树类之间都是用相同的结点类就可以了(二叉树好象需要除外),只要结点不需要提供新的属性,就不派生,从而保持树类间方法的更大兼容性。

    二叉树结点由于扩展了树结点,需要用左孩子和右孩子的形式,所以二叉树就无法继承N叉树了(也就是无法继承树类)。


    作者:海阔天

    欢迎转载!转载请注明出处:

    www.cnblogs.com/yxsylyh

  • 相关阅读:
    『Python基础』第3节:变量和基础数据类型
    Python全栈之路(目录)
    前端
    Python十讲
    Ashampoo Driver Updater
    druid 连接池的配置
    webService 入门级
    pom
    pom----Maven内置属性及使用
    webservice 总结
  • 原文地址:https://www.cnblogs.com/yxsylyh/p/TreeMind.html
Copyright © 2011-2022 走看看