|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2012, 02:18 | #1 |
Пользователь
Регистрация: 12.10.2011
Сообщений: 33
|
Напишите программу с использованием динамических структур
Здравствуйте.
Вот сделал 1 задание Составьте программу, которая формирует список студентов, добавляя фамилии в начало списка. Данные вводятся с клавиатуры. Если вместо ввода фамилии нажата клавиша <Enter>, что равно вводу пустой строки, то программа показывает и распечатывает введенный список. Код:
Собственно вопрос: Как сделать тоже задание, но чтобы фамилии добавлялись не в начало списка, а в середину? Буду благодарен за помощь. |
02.03.2012, 11:53 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а что не получается? В середину, это после какой записи?
общий принцип добавления после какой-то записи будет (в случае однонаправленного списка, как у Вас, выглядеть так: Код:
|
02.03.2012, 12:51 | #3 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
принцип прост:
- при добавлении в конец массива (очередь), нужно помимо ссылки на первый элемент запоминать и ссылку на последний элемент. тогда добавление организуется в три этапа: 1. создаём новый элемент 2. устанавливаем указатель из последнего элемента на вновь созданный. 3. устанавливаем указатель конца массива на созданный элемент - при добавлении в начало массива (стек), добавление элемента происходит так: 1. создаём новый элемент 2. устанавливаем указатель созданного элемента = указателю вершины массива 3. устанавливаем указатель вершины массива на созданный элемент. - при добавлении в середину массива происходит чуть больше операций. но тоже несложно: 1. создаём новый элемент 2. устанавливаем указатель созданного элемента = указателю на элемент, перед которым будет вставка (или указателю элемента, за которым будет вставка). 3. устанавливаем указатель элемента, за которым происходит вставка, на новый элемент. главное - не путать порядок действий, чтобы не потерять какой-либо элемент или указатель. Т.е. сначала присваиваем указателю созданного элемента адрес уже существующего(или nil если это требуется), а лишь после этого в существующих элементах делаем ссылку на текущий.
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 02.03.2012 в 12:54. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Напишите программу с использованием рекурсии для поиска наименьшего элемента массива | netiv | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 17.02.2012 13:57 |
Описать одну из сложных динамических структур данных | Sobaka_ru | Помощь студентам | 3 | 18.01.2012 21:18 |
Разработка динамических структур данных | CW_13 | Помощь студентам | 0 | 18.12.2011 22:46 |
Массив динамических структур. Проблема с выделением памяти. | Алексей Емеля | Общие вопросы C/C++ | 6 | 15.07.2011 19:24 |
Создание и использование динамических структур | Oksana11 | Помощь студентам | 5 | 09.01.2008 19:39 |