CNode.h 908 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef CNODE_H
  2. #define CNODE_H
  3. #include <QObject>
  4. struct CNodeData
  5. {
  6. int id = -1;
  7. int projectId = -1;
  8. int evalType = 0;
  9. int number = -1;
  10. int pNumber = -1;
  11. QString name;
  12. QString remark;
  13. };
  14. class CNode : public QObject
  15. {
  16. Q_OBJECT
  17. public:
  18. explicit CNode(QObject *parent = nullptr);
  19. const CNode *pNode() const; // 父节点
  20. const CNode *rNode() const; // 根节点
  21. QList<CNode *> cNodes() const; // 孩子节点
  22. int height() const; // 节点的高度
  23. int depth() const; // 节点的深度
  24. int leafs() const; // 叶子节点个数或包含的路径条数
  25. ///
  26. /// \brief sizeOfLevel 以此节点为根节点的子树中,某一层的节点数
  27. /// \param lev 节点层级,当前节点为1,向下递增
  28. /// \return 节点数
  29. ///
  30. int sizeOfLevel(int lev) const;
  31. signals:
  32. };
  33. #endif // CNODE_H