public FPTree CreateTree() { FPTree tree = new FPTree(); tree.root = new Node(); tree.arrayNode = new List <Node>(); //new Node[999999]; tree.countNode = 0; return(tree); }
public FPTree InsertNode(FPTree tree, List list) { int i = 0; Node root = new Node(); root = tree.root; Node node = new Node(); node = list.pHead; while (node != null) { bool flag = false; // tìm rtrong root có itemName nào trùng với node.itemName không? for (i = 0; i < root.nodeChildrens.Length; i++) { if (root.nodeChildrens[i] != null) { if (root.nodeChildrens[i].itemName == node.itemName) { flag = true; break; } } } // nếu tìm thấy thì tăng cout của itemName đó lên 1 if (flag == true) { root.nodeChildrens[i].count += 1; if (node.nodeChild != null && node.nodeChild.nodeParent != null) { node.nodeChild.nodeParent = root.nodeChildrens[i]; } } // ngược lại tạo node mới else { node.nodeParent = root; node.count += 1; tree.countNode += 1; // gán node là con của root for (i = 0; i < root.nodeChildrens.Length; i++) { if (root.nodeChildrens[i] == null) { root.nodeChildrens[i] = node; break; } } tree.arrayNode.Add(node); } if (node.nodeChild == null) { root = node; } else { root = node.nodeChild.nodeParent; } node = node.nodeChild; } return(tree); }