|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2013, 21:17 | #1 |
Пользователь
Регистрация: 14.04.2013
Сообщений: 12
|
Бинарное дерево
Посмотрите, пожайлуста, как пронумеровать вершины бинарного дерева.
// бинарное дерево.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> using namespace std; struct Node { int d; Node *left; Node *right; int f; }; Node * first(int d); Node * search_insert(Node *root, int d); void print_tree(Node *root, int l); void num_tree(Node *root, int f); int _tmain(int argc, _TCHAR* argv[]) { int b[] = {10,25,20,6,21,8,1,30,35}; Node *root = first(b[0]); for (int i=1; i<9; i++) search_insert (root, b[i]); print_tree(root, 0); num_tree(root, 0); getchar();getchar(); return 0; } //Формирование первого элемента в дееве Node *first (int d) { Node *pv = new Node; pv->d = d; pv->left = 0; pv->right = 0; return pv; } //поиск с включением Node * search_insert(Node *root,int d){ Node *pv = root, *prev; bool found = false; while (pv && !found){ prev = pv; if (d == pv->d) found = true; else if (d < pv->d) pv = pv-> left; else pv= pv->right; } if (found) return pv; //Создание нового узла Node *pnew = new Node; pnew->d = d; pnew->left = 0; pnew->right = 0; if (d < prev->d) //Присоединение к левому поддереву предка; prev->left = pnew; else prev->right = pnew; //Присоединение к правому поддереву предка; return pnew; } //Обход дерева void print_tree(Node *p, int level) { if (p){ print_tree(p->left, level + 1); for (int i=0; i<level; i++) cout <<" "; cout << p->d << endl; print_tree(p->right, level + 1); } } // нумерация вершин void num_tree(Node *p, int f) { f++; if (p){ num_tree(p->left, f); cout << f <<p->d << endl; f++; num_tree(p->right, f); } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Бинарное дерево (С++) | Артём Волжанкин | Помощь студентам | 3 | 05.08.2012 11:42 |
бинарное дерево | NewNub | Общие вопросы Delphi | 1 | 05.12.2011 15:10 |
Бинарное дерево. | amsask | Помощь студентам | 1 | 29.04.2010 21:25 |
Бинарное дерево) | Svetlanka_ya | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.04.2010 12:35 |
бинарное дерево СИ | Anastasia.K | Помощь студентам | 0 | 31.10.2009 18:16 |