Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление заданной вершины дерева 
:(
    Опции темы
bobbyserf
  Дата 19.4.2015, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.12.2014

Репутация: нет
Всего: нет



Код

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
 
class Policlinnica
{
private:
 
    struct Node
    {
        char family [30];
        char name [30];
        char fathername [30];
        char adress[30];
        int polic;
        long int medkart;//медкарта
        Node* left;
        Node* right;
 
        Node()
        {
            strcpy(this->family, "");
            strcpy(this->name, "");
            strcpy(this->fathername, "");
            strcpy(this->adress, "");
            this->polic=0;
            medkart= 0;
            this->left=0;
            this->right=0;
        }
 
        Node(Node const& rhs)
        {
            strcpy(family, rhs.family);
            strcpy(name, rhs.name);
            strcpy(fathername, rhs.fathername);
            strcpy(adress, rhs.adress);
            polic=rhs.polic;
            medkart=rhs.medkart;
            left=rhs.left;
            right=rhs.right;
        }
 
       void insert(Node const& rhs)
        {
            if(rhs.medkart < medkart)
            {
                if(!left)
                    left = new Node(rhs);
                else
                    left->insert(rhs);
            }
            if(rhs.medkart > medkart)
            {
                if(!right)
                    right = new Node(rhs);
                else
                    right->insert(rhs);
            }
        }

       

        void print() const
        {
            if(left)
                left->print();
                cout <<"family      "<< family << "\n\n";
                cout <<"name        "<< name << "\n\n";
                cout <<"fathername  "<< fathername << "\n\n";
                cout <<"adress      "<< adress << "\n\n";
                cout <<"polic       "<< polic << "\n\n";
                cout <<"medkart     "<< medkart << "\n\n";
                cout << "===============================================";
                cout << "\n";
    
            if(right)
                right->print();
        }
 
    };
    Node* pRoot;//корневой
 
    
public: Policlinnica() : pRoot(0){}
 
    void insert(Node const& rhs)
    {
        if(!pRoot)
            pRoot = new Node(rhs);
        else
            pRoot->insert(rhs);
    }
 
    void LoadFile();
 
    void print() const
    {
        if(pRoot)
            pRoot->print();
    }
};
 
void Policlinnica::LoadFile()
{
    Node tmp;
    FILE* f=fopen("in.txt","rt");
    if (f)
    {
        while (!feof(f))
        {
            fscanf(f, "%s %s %s %s %d %d %d", tmp.family, tmp.name, tmp.fathername, tmp.adress, &tmp.polic, &tmp.medkart);
            insert(tmp);
        }
        fclose(f);
 
    }
    else
        cout << "File not found";
}
 

int main()
{    
    int x;
    cin >> x;
    Policlinnica obj;
    obj.LoadFile();
    obj.print();
}

Напишите пожалуйста функцию удаления вершины по медкарте.
PM MAIL   Вверх
rudolfninja
Дата 19.4.2015, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Проходите по дереву, находить карту с нужным ИД (у вас medkart), удаляете, а родителем для его детей ставите родителя удаленного элемента.
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.