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

Поиск:

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


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 1.12.2005
Где: Новосибирск

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



Задание: список - каждый элемент является заголовком односвязного списка. Элемент списка второго уровня содержит указатель на строку. (Включение элемента последним в список производить с учетом выравнивания длины текущего и следующего списков).

Как я понял, в списке первого уровня (внешнем), должен быть массив из элементов, каждый элемент которого должен содержать заголовок второго (внутреннего) списка, причем кол-во списков второго уровня не должно быть ограничено, т.е. скажем, внутренний список может хранить максимум 4 элемента, и если мы добавляем 5, то создается второй список второго уровня и элемент дописывается туда, при его заполнениии создается 3ий и т.д.

Не могу понять, как это правильно реализовать....сама основа подобной структуры. Внешний список:

struct list{
    char **str;
    list *next;
    list *pred;
};

соответственно, заголовки должны быть элементами char **str...но как здесь реализовать создание списка второго уровня?
PM MAIL ICQ   Вверх
zkv
Дата 1.4.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



Цитата(Aaron @  1.4.2007,  07:33 Найти цитируемый пост)
Задание: список - каждый элемент является заголовком односвязного списка. Элемент списка второго уровня содержит указатель на строку. (Включение элемента последним в список производить с учетом выравнивания длины текущего и следующего списков).
 заголовком - корнем что ли? Насчет выравнивания не понял. Дальше тоже не понял о чем вы говорите
Код

struct LIST_INTERNAL{
    char *charData;
    LIST_INTERNAL *internalNext;
};

struct LIST_EXTERNAL{
    LIST_EXTERNAL *internalRoot;
    LIST_EXTERNAL *externalNext;
    LIST_EXTERNAL *externalPrev;
}g_externalRoot;

PM MAIL   Вверх
MAKCim
Дата 1.4.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



создаешь
Код

struct list_head {
    struct list_head *previos, *next;
};

struct level_2_list_entry {
    char    *ptr;
    struct list_head link; /* для связи элементов списков 2-го уровня */
};

struct level_2_list {
    struct level_2_list_entry    entry;
};

struct level_1_list_entry {
/* тут могут быть дополнительные поля */
    struct level_2_list    list;
    struct list_head    link; /* для связи элементов списков 1-го уровня */
};

struct level_1_list {
    struct level_1_list_entry     entry;
};


Это сообщение отредактировал(а) MAKCim - 1.4.2007, 09:09


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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