فهرست منبع

获取指标体系脑图分支数目

chengxr 1 سال پیش
والد
کامیت
42f15ab8f3
4فایلهای تغییر یافته به همراه27 افزوده شده و 3 حذف شده
  1. 18 0
      QFD/CCanvas/CMind.cpp
  2. 6 0
      QFD/CCanvas/CMind.h
  3. 2 2
      QFD/CCanvas/CNode.cpp
  4. 1 1
      QFD/CCanvas/CNode.h

+ 18 - 0
QFD/CCanvas/CMind.cpp

@@ -232,3 +232,21 @@ QList<CNodeData> CMind::subNodes(CNodeData n) const
     }
     return l;
 }
+
+int CMind::leavesOfNode(CNodeData n) const
+{
+    int d = 1;
+    if (subNodes(n).count() > 0) {
+        d = 0;
+        for (CNodeData sub : subNodes(n)) {
+            d += leavesOfNode(sub);
+        }
+    }
+
+    return d;
+}
+
+int CMind::leaves() const
+{
+    return leavesOfNode(root());
+}

+ 6 - 0
QFD/CCanvas/CMind.h

@@ -53,6 +53,12 @@ public:
     // 子节点列表
     QList<CNodeData> subNodes(CNodeData n) const;
 
+    // 某节点的叶子节点个数或包含的分支数
+    int leavesOfNode(CNodeData n) const;
+
+    // 脑图的叶子节点个数或包含的分支数
+    int leaves() const;
+
 signals:
     void sigRemoveNode(int id);
 

+ 2 - 2
QFD/CCanvas/CNode.cpp

@@ -50,13 +50,13 @@ int CNode::depth() const
     return d;
 }
 
-int CNode::leafs() const
+int CNode::leaves() const
 {
     int d = 1;
     if (cNodes().count() > 0) {
         d = 0;
         for (CNode *n : cNodes()) {
-            d += n->leafs();
+            d += n->leaves();
         }
     }
 

+ 1 - 1
QFD/CCanvas/CNode.h

@@ -39,7 +39,7 @@ public:
 
     int depth() const;  // 节点的深度
 
-    int leafs() const;  // 叶子节点个数或包含的路径条数
+    int leaves() const;  // 叶子节点个数或包含的路径条数
 
     ///
     /// \brief sizeOfLevel 以此节点为根节点的子树中,某一层的节点数