![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
bekost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Функция добавления в структуру: listH *add(listH *&lstH,char *s,int n) В функцию передается указатель на структуру (заголовок верхнего списка) по ссылке, т.е. указатель на указатель, чтобы в необходимых случаях можно было настраивать заголовок на новый элемент, включаемый первым в верхний список. Также передается указатель на строку в памяти, и n – это максимально допустимая длинна подсписка. Функция возвращает указатель на структуру, с включенным новым элементом, а если включить не удалось (не хватило памяти), то возвращается NULL. Так как передается указатель на структуру, то всегда кроме случая создания первого элемента будет возвращаться тот же указатель, что и был передан, конечно, в случае успешной вставки. А если создается первый элемент, то возвращается указатель на созданную структуру (переданный NULL). Если структура пуста (lstH == NULL), то выделяем память под первый элемент верхнего списка, а затем под первый элемент нижнего списка. Настраиваются соответствующие указатели на строку в памяти, и записываются ограничители в верхний и нижний списки. Если структура не пуста, то позиционируемся на последний элемент структуры (последний верхнего и нижнего списков) последовательным перемещением по спискам, и записываем новый элемент в конец подсписка, предварительно выделив под него память. После включения проверяем на переполнение, а именно: счетчик элементов верхнего уровня должен быть меньше допустимого, иначе необходимо перенести половину элементов из текущего подсписка в следующий подсписок. Помогите реализовать в коде. Это сообщение отредактировал(а) bekost - 3.6.2007, 09:00 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |