![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упорядоченный динамический список Help Please
(MiTch) © (2007-10-23 21:49:00)Помогите пожалуйста разобрать алгоритм. Самостоятельно не смогаю.
type
TPStudent=^TStudent;
TStudent = record
f_name:string[20];
l_name:string[20];
next: TPStudent;
end;
var
head: TPStudent;
procedure TForm1.Button1Click(Sender: TObject);
var
node: TPStudent;
curr: TPStudent;
pre: TPStudent;
begin
new(node);
node^.f_name:=Edit1.Text;
node^.l_name:=Edit2.Text;
curr:=head;
pre:=NIL;
while (curr <> NIL)and(node.f_name > curr^.f_name) do
begin
pre:= curr;
curr:=curr^.next;
end;
if pre = NIL
then
begin
node^.next:=head;
head:=node;
end
else
begin
node^.next:=pre^.next;
pre^.next:=node;
end;
Edit1.text:='';
Edit2.text:='';
Edit1.SetFocus;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
head:=NIL;
end;
Понятно как вводится первый элемент в список, Головной указывает на первый введенный .
Далее ввожу новый узел, и здесь начинается "путаница" ...
curr:=head , pre:=curr , curr:=curr^.next. что тут чему равно ...
прямо не знаю что и делать)
(MiTch) (2007-10-28 09:56:00) [1]Да! Да я догнал.Поздравьте меня.
А теперьче будем удалять ненужные элементы из списка)
(MiTch) (2007-10-24 19:33:00) [2]
> curr - это указатель на область памяти, аcurr^ - это значение,
> на которое ссылается указатель.
это как раз понятно. понятно и как организовать просто динамический список. Не совсем ясно когда указатели друг на друга ссылаются. Сразу не определить что чему равно. Короче будем искать книжки, раз рекомендуют.
Германн (2007-10-24 01:12:00) [3]
> Джо © (24.10.07 00:34) [4]
Не знаю почему, но код в [0]
> (curr <> NIL)and(node.f_name > curr^.f_name)
сразу навёл меня на мысль о "чужом языке" :)
Джо (2007-10-24 00:34:00) [4]А еще это все неплохо описано в книге Вирта «Алгоритмы и структуры данных». И даже с примерами не на вражеском языке :)
Галинка (2007-10-24 00:32:00) [5]А еще именно упорядоченный список хорошо, просто замечательно описан в книге Кернигана и Ричи "Язык программирования Си (ANSI C)". Только там синтаксис соответственно языка си. Но концепт я думаю тот же...
Галинка (2007-10-24 00:29:00) [6]если найдешь, то возьми книгу Файсмана по ТурбоПаскалю. Там списки очень подробно и наглядно объясняются.
Efir (2007-10-23 22:15:00) [7]curr - это указатель на область памяти, а
curr^ - это значение, на которое ссылается указатель.