|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.10.2008, 18:51 | #1 |
Регистрация: 13.10.2008
Сообщений: 5
|
Однонаправленные списки в си
Необходимо создать однонаправленный список с указателем и информационным полем в с++. тип информационного поля int. необходимо удалить элементы с четными информационными полями.
Не может ли ктонибудь мне подсказать как это делать? |
14.10.2008, 00:03 | #2 |
Регистрация: 12.10.2008
Сообщений: 7
|
Например:
struct Elm { int value; Elm *prv; }; class List { public: List(); //конструктор //------set------ void setTop( Elm * ); //------get------ int getVal( Elm * ); Elm *getTop(); void Add( int ); void Delete( Elm * ); private: int size; Elm *Top; }; Elm - это структура с целым информационным полем и указателем на предыдущий элемент, соответственно Top - указатель на самый последний элемент списка. При добавлении элемента в список создаем новую структуру Elm, указателю Top присваиваем адрес этой структуры, потом указателю prv присваиваем адрес предыдущего элемента и value - нужное значение. Таким образом списак "связывается". Потом обходим список, проверяем если поле четное, то удаляем элемент из списка: указателю предыдущего элемента присваем указатель на следующий, не забываем сделать delete. +нужно отдельное условие обрабатывать, если удаляем Top-элемент - здесь просто меняем указатель на последний элемент, и потом тоже delete. |
14.10.2008, 00:37 | #3 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
я сегодня почему то очень добрый, решил тебе сделать полностью. На самом деле у меня эта лаба была по сям на втором курсе, я ее нагло списал надо восстановить справедливость)
Код:
|
14.10.2008, 12:22 | #4 |
Регистрация: 13.10.2008
Сообщений: 5
|
Спасибо огромнейшее, а то ни в одной книге ничего не мог найти
|
16.10.2008, 18:39 | #5 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 18
|
Присоединяюсь к этой теме.
вот условие задачи: Создать однонаправленный список. Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. Не может ли кто нибудь мне подсказать как это делать?! |
18.10.2008, 21:24 | #6 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 18
|
значит никто не поможет?(
|
18.10.2008, 21:47 | #7 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2zven_ чему тут помогать то. немного изменить функцию DeleteItems проги, которую я написал выше. ну и поле свое на чар поменять) и все готово.
|
19.10.2008, 12:45 | #8 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 18
|
2vvviperrr все равно не понятно ) знаю, что поле сменю на чар это дело легкое, а вот изменить самой функции DeleteItems я не знаю че изменять... и то условие написано, что надо сначала заполнять свое информационное поле, а потом уже ввести где добавить в список элемент и после элемента с заданным информационным полем...
|
19.10.2008, 23:09 | #9 | |
Пользователь
Регистрация: 19.10.2008
Сообщений: 32
|
Цитата:
прикрепил тут свои наброски, сырцы еще сыроваты, но тем не менее… |
|
20.10.2008, 22:00 | #10 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 18
|
о_О ужс.... длинный код.... спасибо большое конечно, но там всего ошибка одна всего лишь.. "lab3_test5.cpp(158) : error C2065: 'getchar' : undeclared identifier"
.. мне б попроще код программы нужен... длинный код препод не примет лабораторку...будет задавать кучу вопросов...и... скажет не прально все это... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На списки... | Neznau | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 02.07.2008 19:49 |
Списки | Вилен | Общие вопросы C/C++ | 3 | 22.05.2008 00:40 |
списки | Влдислаав3911 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 10.05.2008 17:35 |
Списки | AVer | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 06.12.2006 23:05 |