![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.11.2009
Сообщений: 9
|
![]()
Ребят,можете помочь пожалуйста!!программа заключается в создании двусвязного списка и работа с ним(перемещение вправо и влево,удаление,вставка всправа и слева,перемещение в начало и конец)...так как тут надо вставлять и передвигаться,я так понял,что надо делать через char..и вот первая проблема,это создание самого списка..запоминает только один элемент...да и со вставкой с обеих сторон у меня проблемы...можете помочь пожалуйста!!
Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
Не стал разбираться в коде, ответ на вашу первую проблемму.
Создание двунаправленного списка. Вот я сделал пример где двунаправленный список заполнен данными из типизированного файла. Список закольцован. Код:
переделайте немного под свою версию, практика не помещает. Может и поймете где ошиблись. Если что то непонятно справшивайте. 2) Для перемещения в начало и конец в моем примере созданы указатели pbOb(начало),peOb(конец). Думаю тут не должно быть проблем. И что за вставка с обеих сторон?? Объясните поподробнеей.
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() Последний раз редактировалось VektorAB; 06.07.2010 в 15:49. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 17.11.2009
Сообщений: 9
|
![]()
спасибо,сейчас буду разбираться.
у меня есть ещё задача,перемещение по списку вправо и влево.и значит где-нибудь,когда указатель у нас находится не на крайнем элементе,мы можем вставить новый элемент или справа от него..вроде так. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Поправил исходник из поста #1
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
Так т.е мы можем выбрать слева вставить, или справа.
Или Одновременно вставить и слева и справа. И почему не на крайней позиции. Я сейчас код набрасаю как вставить эллемент сразу с двух сторон, а там сами разберетесь что Вам надо.
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
VektorAB, у топик-стартера задание нечёткое, мне оно кажется как программа прогуливающаяся по списку и вставляющая элементы относительно текущей позиции(Великий Могучий Русский язык, понимаешь ли
![]() Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
)) Всё ясно что написали.
Но я и вовсе не имел ввижу добавление в конец списка и в начало. Я спросил почему нельзя добавить в крайнию позицию ТОбишь первую и последнюю. Мне кажется если добавлять то нужно добавлять везде)) Я вот щас делаю добавление и справа и слева одновременно. Тоесть указал номер эллемента и программа добавляет 2 идентичных компоненты пососедству. Добавление слева сделал, но что справа пока не сходиться. Но я кажись допираю до сути ![]() Код:
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() Последний раз редактировалось VektorAB; 08.07.2010 в 21:38. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
Почему то пришлось заводить 2 вспомогательных указателя, подскажите пожалуйста если можно сделать по другому.
Код:
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() Последний раз редактировалось VektorAB; 08.07.2010 в 22:08. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 29
|
![]()
А что же я на код ТС-а не обратил внимания там все стало понятным просле прочтения 4 и 5 пунктов меню, Вставка лиюо справа либо слева.
Ну это то же самое что и написаное выше. Только добавить необходимо условный оператор , в случае если выбирается 1 эллемент при вставке слева, и последный при вставке справа.
"Сегодня, в завтрашний день не все могут смотреть, вернее не только лишь все, мало кто может это сделать"
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Только так и никак по-другому. Добавляем мы 2 элемента, следовательно память выделить мы должны именно под 2 элемента. Правда тут можно упростить, использовав одну переменную для указателей (указатель ведь это всего лишь 2-х байтовое число, которое после установки связи с соседними элементами нам даром не нужно) и применив "наследование" типа Obj для ZvenoOb (это чтобы несколько строк убрать), но вызывать new в любом случае надо дважды.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
двусвязный список | Work Group | Помощь студентам | 0 | 24.05.2010 21:27 |
двусвязный список | klykovka | Помощь студентам | 8 | 22.05.2010 18:58 |
двусвязный список на си++ | mizantrop32 | Общие вопросы C/C++ | 0 | 18.05.2010 17:45 |
Java, двусвязный список | Halifath | Помощь студентам | 0 | 07.05.2010 15:06 |
Двусвязный список | kruserg | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.04.2009 10:37 |