void deleteStructure(Node<ValueType> *&root, std::unordered_map<Node<ValueType>*, bool> &visitedNodes) { if ((root != nullptr) && (visitedNodes.find(root) == visitedNodes.end())) { visitedNodes[root] = true; deleteStructure(root->left, visitedNodes); deleteStructure(root->right, visitedNodes); delete root; root = nullptr; } }
GrammarViewPrivate::GrammarViewPrivate(QWidget* parent): QWidget( parent) { ui.setupUi(this); ui.pbImportTexts->setIcon(KIcon("document-import")); ui.pbRename->setIcon(KIcon("document-properties")); ui.pbMerge->setIcon(KIcon("arrow-down-double")); ui.pbAdd->setIcon(KIcon("list-add")); ui.pbDelete->setIcon(KIcon("list-remove")); connect(ui.lvStructures, SIGNAL(selectionChanged()), this, SLOT(currentSelectionChanged())); connect(ui.pbImportTexts, SIGNAL(clicked()), this, SLOT(showImportWizard())); connect(ui.pbMerge, SIGNAL(clicked()), this, SLOT(showMergeWizard())); connect(ui.pbAdd, SIGNAL(clicked()), this, SLOT(addStructure())); connect(ui.pbDelete, SIGNAL(clicked()), this, SLOT(deleteStructure())); connect (ui.pbRename, SIGNAL(clicked()), this, SLOT(showRenameWizard())); grammarProxy = new QSortFilterProxyModel(); grammarProxy->setFilterKeyColumn(0); ui.lvStructures->setModel(grammarProxy); ui.lwExamples->clear(); //currentSelectionChanged(); }
void printAndDeleteStructure(Node<ValueType> *&root) { printStructure (root); printf("\n----------\n"); deleteStructure(root); }
void deleteStructure(Node<ValueType> *&root) { std::unordered_map<Node<ValueType>*, bool> visitedNodes; deleteStructure(root, visitedNodes); }