// branch variable tell on which branch of parent the node is to be attached void addtoCDGnode(int id, int pid, int branch) { CDGNode* node = newBlankNode(); setID(node, id); if ( 0 == id ) { root = node; } else { if (branch) { addTrueNode(nodes[pid], node); } else { addFalseNode(nodes[pid], node); } } nodes[id] = node; }
CDGNode *addDummyNodes(CDGNode * node) { while (node) { if (!isLeaf(node)) { if (NULL == getTrueNodeSet(node)) { addTrueNode(node, newBlankNode()); } else if (NULL == getFalseNodeSet(node)) { addFalseNode(node, newBlankNode()); } } addDummyNodes(getTrueNodeSet(node)); addDummyNodes(getFalseNodeSet(node)); node = getNextNode(node); } return node; }