![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Catherinektz |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Екатерина Репутация: ![]() ![]() ![]() |
Здравствуйте, мне нужна помощь, я сделала все процедуры (ниже в программе), а процедуру Remove(var x:PNode) не знаю как сделать! Помогите, пожалуйста. В ней нужно удалить текущий элемент x линейного списка.
Program Labal1_2; Сообщение отредактировано: Lapp - 16.03.2012 4:07 |
![]() ![]() |
Федосеев Павел |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Здесь в FAQ есть ответ:
Цитата Если следует удалить элемент на который указывается ссылка q, то следует в начале присвоить элементу q^ значение следующего за ним элемента, а затем этот элемент удалить. {удаление элемента q^} Цитата Обратите внимание на то, что удаляемый из списка элемент остается в памяти и к нему имеется доступ к указателю r, так что в дальнейшем этот элемент можно вставить, например, в другой список. Если требуется освободить занимаемую этим элементом память, то следует выполнить: { ... } Dispose( r ); r:=nil; { ... } Сообщение отредактировано: Федосеев Павел - 15.03.2012 19:14 |
Catherinektz |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Екатерина Репутация: ![]() ![]() ![]() |
Здесь в FAQ есть ответ: {удаление элемента q^} К сожалению не работает, выдает ошибку разыменования нулевого указателя. Я записала так: Procedure Remove(Var x:PNode); Var r:PNode; Begin r:=x^.next; x^:=r^; r^.Next:=nil; {Dispose®; r:=nil; } End; в основной программе: WriteLn('Удаление:'); Remove(u); PrintList(u); End. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:33 |