Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Связные списки и другие структуры.






    Для работы с массивом необходимо знать его размерность, хотя бы в начале работы программы. Если это данное не известно то можно либо сильно увеличить резервируемую память, либо рисковать ограниченность пространства для данных в массиве. Данную проблему решают связные списки. Связанный список это структура данных, содержащая из взаимосвязанных блоков. Идея состоит в том, что бы создать класс, который поддерживал бы данные определённого типа, среди которых был бы указатель, связанный с другим объектом этого класса.

    Существуют три основных вида списков:

    § Однонаправленные списки (очередь, стек);

    § Двунаправленные списки (дек и т.д.);

    § Деревья.

    Названия образуются от количества связующих список указателей в каждом объекте списка.

    Список состоит из узлов, узлы представляют собой абстрактные классы. Начало — это начало обработки промежуточных узлов списка, которые отвечают за хранение данных, указатель узла - “хвост” обязательно имеет значение null (0).

    // программа работы с динамическими списками при помощи классов.

    // однонаправленные списки, двунаправленные списки и деревья.


    #include < iostream.h>

    #include < iomanip.h>

    #include < fstream.h>

    ofstream fout(" rez.txt");

    ifstream fin(" rez.txt");

    Class Data

    {

    public:

    Data ();

    ~Data(){delete fam; }

    int Compare(const Data &);

    Void Show();

    private:

    char fam[25];

    Float ball;

    };

    Data:: Data()

    {

    cout< < " \n Введите фамилию и средний балл: ";

    cin> > fam> > ball;

    }

    void Data:: Show()

    { cout.width(25);

    cout.fill(' ');

    cout< < fam;






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.