Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2007, 10:09   #1
Olgasato
 
Регистрация: 13.11.2007
Сообщений: 9
Вопрос Динамический список...на Delphi

Здравствуйте всем!
Очень нужна ваша помощь.. Я тут написала программу, которая добавляет и показывает динамический список, но никак не могу сообразить насчет УДАЛЕНИЯ узла элемента из списка..

Тут есть программа на Добавить и Показать (кнопочки)...
Кто знает, как написать процедуру для удаления узла из списка, помогите, пожалуйста!!
Изображения
Тип файла: jpg Форма.JPG (10.7 Кб, 191 просмотров)
Вложения
Тип файла: txt Текст программы.txt (1.6 Кб, 206 просмотров)
Olgasato вне форума Ответить с цитированием
Старый 05.12.2007, 17:57   #2
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

Код:
// удалить элемент
procedure TForm1.Button3Click(Sendor: TObject);
var
prev, curr: TPStudent; // предыдущий и текущий элементы списка
begin
prev:=NIL;
curr:=head;
while curr <> NIL do
begin
if (curr^.f_name = Edit1.Text) and (curr^.l_name = Edit2.Text) then
begin // Ищем нужный элемент
if prev <> NIL then prev^.next:=curr^.next
else head:=curr^.next; // Если элемент первый меняем head
dispose(curr); // Освобождаем память для элемента списка
break;
end;
prev:=curr;
curr:=curr^.next;
end;
if curr=NIL then ShowMessage('Данного элемента в списке нет.');
end;
n@sok вне форума Ответить с цитированием
Старый 06.12.2007, 15:42   #3
Olgasato
 
Регистрация: 13.11.2007
Сообщений: 9
Хорошо Еще Вопросик....

Спасибо большое, все работает....

Мне оказывается еще нужен здесь Поиск... А как это сделать - тоже никаких идей... Сегодня без него не прокатило

Может есть какие-нить идеи??
Olgasato вне форума Ответить с цитированием
Старый 06.12.2007, 15:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Мне оказывается еще нужен здесь Поиск
А вон смотри, Насок, тебе написал ядро поиска, единственное что он добавил при нахождении удалить элемент, а ты вместо этого делай с ним нужное, например показывай.
Вот в коде, там где dispose(curr); вызывается значит элемент найден
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2007, 13:55   #5
Olgasato
 
Регистрация: 13.11.2007
Сообщений: 9
По умолчанию

Это надо вместо Dispose написать, чтобы он показал??

У меня что-то не получается..... не совсем поняла что куда писать..

Можно пожалуйста поподробней...
Olgasato вне форума Ответить с цитированием
Старый 10.12.2007, 17:46   #6
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

Цитата:
Это надо вместо Dispose написать, чтобы он показал??
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
curr: TPStudent; // текущий элемент списка
begin
curr:=head;
while curr <> NIL do
begin
if (curr^.f_name = Edit1.Text) and (curr^.l_name = Edit2.Text) then
begin // Ищем нужный элемент
ShowMessage(curr^.f_name+' '+curr^.l_name+#13); // <-- Вот здесь и пишется что нужно сделать с элементом
break;
end;
curr:=curr^.next;
end;
if curr=NIL then ShowMessage('Данного элемента в списке нет.');
end;
n@sok вне форума Ответить с цитированием
Старый 11.12.2007, 15:02   #7
Olgasato
 
Регистрация: 13.11.2007
Сообщений: 9
Хорошо

Спасибо Большое, друзья!!
Все очень доходчего!!

А по части стека и очереди: у меня есть написанная программа (Добавление и удаление элем-та), только на Turbo Pascal, можно ее как-нить перевести на Delphi и связать это все с кнопочками и с тем, куда вводить и выводить? вроде говорят, что они не сильно отличаются...(Turbo Pascal и Delphi)

(А то у нас было подобие преподавания Delphi, а потом пришла препод и сказала, что вы как хотите, а я буду читать на Turbo P... всем на поф )
Вложения
Тип файла: txt Стек на Tubbo Pascal.txt (1.1 Кб, 128 просмотров)
Тип файла: txt Очередь на Turbo Pascal.txt (1,012 байт, 125 просмотров)

Последний раз редактировалось Olgasato; 11.12.2007 в 16:51. Причина: Еще вопросик...
Olgasato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Составить линейный список, Среда Delphi Kreaman Помощь студентам 1 11.06.2008 19:54
[Delphi] TStringGrid + динамический список dee_lv Помощь студентам 3 27.04.2008 03:00
Динамический список (срочно!) Achtung-Partizanen Помощь студентам 4 08.05.2007 16:08