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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> деревья и файлы, работа с деревьями 
:(
    Опции темы
Aleksandra24
Дата 13.5.2013, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ПРивет всем!!!Я студентка можете  пожалуйста мне помочь с редактированием программки...буду очень вам благодарна!!!!
Я написала программку с деревьями мне нужно дерево занести в файл  и прочитать с него...не могу понять как делать..!помогите пожалуйста!!!!!!!!!!!!!
Код

/*
*   Задание:
*   Деревья
*/

#include "lab13func.cpp" //модуль с подключенными библиотеками и необходимыми функциями

void main(){
    Tree *root;
    root = NULL;
    for(int PressKey = 0; PressKey != '0';){
        cls();
        ShowMenu();
        PressKey = getch();
        if(PressKey >= '0' && PressKey <= '9'){
            switch(PressKey){
                case '1':{      //добавление нового эл-та
                    cls();
                    cout << "Adding the element.\nEnter data: ";
                    int data;       //переменная данных которые необходимо добавить
                    cin >> data;        //ввод данных
                    Add(root, data);        //вызов ф-ии добавлнеия эл-та
                }
                break;
                case '2':{      //удалене одного эл-та
                    cls();
                    cout << "Deleting the element.\nEnter data of this element: ";
                    int data;       //переменная данных которые необходимо удалить
                    cin >> data;        //ввод данных
                    Delete(root, data);     //вызов ф-ии удаления эл-та эл-та
                }
                break;
                case '3': DeleteAll(root); break;
                case '4':{      //поиск одного эл-та
                    cls();
                    cout << "Searching the element.\nEnter data of this element: ";
                    int data;       //переменная данных которые необходимо найти
                    cin >> data;        //ввод данных
                    Search(root, data);
                    getch();
                }
                break;
                case '5': ShowTree(root); getch(); break;
                case '0': break;
            }
        }
        else continue;
    }
}


Второй срр
Код

//используемые стандартные библиотеки:

#include <iostream.h>           //потоки ввода/вывода
#include <stdio.h>              //стандартный ввод/вывод
#include <conio.h>              //консольный ввод/вывод
struct Tree{        // структура дерева
    int Data;       // данные
    Tree *L;        // левое поддерево
    Tree *R;        // правое поддерево
};
//используемые не стандартные функции

void cls(){system("cls");}      //отчистка экрана

//функции обработки списка для выполнения пунктов меню

void ShowMenu(){        //отображение на экране меню
    cout << "Menu:"
         << "\n1. add element"
         << "\n2. delete element"
         << "\n3. delete all elements"
         << "\n4. find the element"
         << "\n5. show tree"
         << "\n0. exit"
         << "\n";
}
void Add(Tree *&root, int data){        //добавление нового эл-та
    if(!root){
        root = new Tree;
        root->Data = data;
        root->L = root->R = NULL;
    }
    else{
        if(data > root->Data) Add(root->R, data);
        else if(data < root->Data) Add(root->L, data);
        else cout << "This el-t is aready exist :)";
    }
}
void Delete(Tree *&root, int data){      //удаление одного эл-та
    if(root){
        if(data < root->Data) Delete(root->L, data);
        else if(data > root->Data) Delete(root->R, data);
        else{
            if(root->R){
                if(root->L){
                    Tree *temp = root->R->L;
                    while(temp->L) temp = temp->L;
                    temp->L = root->L;
                }
                root = root->R;
            }
            else if(root->L) root = root->L;
            else{
                delete root;
                root = NULL;
            }
        }
    }
}
void DeleteAll(Tree *&root){        //удаление всего дерева
    if(root){
        DeleteAll(root->L);
        DeleteAll(root->R);
        delete root;
        root = NULL;
    }
}
void Search(Tree *root, int data, int num = 1){     //поиск эл-та
    if(root){
        if(data < root->Data) Search(root->L, data, num + 1);
        else if(data > root->Data) Search(root->R, data, num + 1);
        else cout << "This element is exist on " << num << " lavel :)";
    }
}
void ShowTree(Tree *root, int num = 0){     //вывод дерева на экран в виде дерева
    if(root){
        if(root->R) ShowTree(root->R, num + 1);
            int n = num;
            while(n > 0){cout << "  "; n--;}
            cout << root->Data << '\n';
            if(root->L) ShowTree(root->L, num + 1);
    }
}

СПАСИБО ЗА ПОМОЩЬ!

Модератор: не забываем пользоваться кнопочкой "код"
PM MAIL   Вверх
bsa
Дата 13.5.2013, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Сама написала или взяла откуда-то?
PM   Вверх
Aleksandra24
Дата 14.5.2013, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



сама написала..)
а с файлами никак не могу понять...
PM MAIL   Вверх
math64
Дата 14.5.2013, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

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



В ShowTree добавьте параметр - поток для вывода вместо cout - получите WriteTree.
Тогда
Код

void ShowTree(Tree *root, int num = 0) {
  WriteTree(cout, root, num);
}

Аналогично напишите ReadTree
PM   Вверх
bsa
Дата 14.5.2013, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Вместо #include <iostream.h> следует писать #include <iostream>. Вместо stdio.h - cstdio. Далее после всех инклюдов добавить using namespace std;

Для работы с файлами следует подключить fstream. И использовать класс fstream. Подробнее на http://cppreference.com
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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