Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Бинарное дерево

6.7K
23 апреля 2007 года
Ginza9
96 / / 30.06.2006
Либо я чего-то не понимаю, либо что-то еще. Объясните популярно, как строить дерево...
Вот, что наваял:

Код:
#include <stdlib.h>
#include <iostream.h>

class Node {
    protected:
        Node *left;
        Node *right;
        int data;
    public:
        Node() { left=right=NULL;data=0; }
        void Insert(Node *root,Node *ptr);
        Node* Form(int p);
        void Print(Node *root);
};

Node* Node::Form(int p) {
    Node *tmp;
    tmp=(Node *)malloc(sizeof(Node));
    tmp->data=p;
    tmp->left=NULL;
    tmp->right=NULL;
    return tmp;
}

void Node::Insert(Node *root,Node *ptr) {
    if(root==NULL) root=ptr;
    else {
        if(root->left==NULL) Insert(root->left,ptr);
        else Insert(root->right,ptr);
    }      
}

void Node::Print(Node *root) {
    int j=1;
    while(root!=NULL) {
        cout << j << "  " << root->data << endl;
        root=root->left;
        j++;
    }
}

void main() {
    int i=0;
    Node *root,*t,*p,*r;
    root=NULL;
    while(i<5) {
        root->Insert(root,root->Form(10));
        i++;
    }
    root->Print(root);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог