#include "mainwindow.h" #include "ui_mainwindow.h" #include #include using namespace std; struct prvek { int key; string value; prvek * left; prvek * right; }; prvek * search (prvek * b, int k) { while (b!=NULL && b->key != k){ if (k < b->key) b=b->left; else b=b->right; } return b; } prvek * find (prvek * b, int k) { if (b == NULL) return NULL; else if (b->key == k) return b; else if (k < b->key) return find (b->left, k); else return find (b->right, k); } void insert (prvek * & b, int k, string v) { if (b == NULL){ prvek * p = new prvek; p->key = k; p->value = v; p->left = NULL; p->right = NULL; b = p; } else if (b->key == k) b->value=v; else if (k < b->key) insert (b->left, k, v); else insert (b->right, k, v); } void MainWindow::write (QTreeWidgetItem * target, prvek *b) { if (b != NULL) { QString text = QString::number (b->key); text = text + " ... " + b->value.c_str(); QTreeWidgetItem * item = new QTreeWidgetItem; item->setText (0, text); if (target == NULL) ui->treeWidget->addTopLevelItem (item); else target->addChild (item); write (item, b->left); write (item, b->right); item->setExpanded (true); } } void MainWindow::on_actionRun_triggered() { prvek * root = NULL; insert (root, 7, "sedm"); insert (root, 10, ""); insert (root, 5, ""); insert (root, 8, "osm"); insert (root, 12, ""); insert (root, 1, ""); insert (root, 6, ""); insert (root, 2, ""); insert (root, 9, ""); insert (root, 11, ""); insert (root, 14, ""); write (NULL, root); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }