Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизУпорядоченный динамический список Help Please Найти похожие ветки
← →
(MiTch) © (2007-10-23 21:49) [0]Помогите пожалуйста разобрать алгоритм. Самостоятельно не смогаю.
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. что тут чему равно ...
прямо не знаю что и делать)
← →
Efir (2007-10-23 22:15) [1]curr - это указатель на область памяти, а
curr^ - это значение, на которое ссылается указатель.
← →
Галинка © (2007-10-24 00:29) [2]если найдешь, то возьми книгу Файсмана по ТурбоПаскалю. Там списки очень подробно и наглядно объясняются.
← →
Галинка © (2007-10-24 00:32) [3]А еще именно упорядоченный список хорошо, просто замечательно описан в книге Кернигана и Ричи "Язык программирования Си (ANSI C)". Только там синтаксис соответственно языка си. Но концепт я думаю тот же...
← →
Джо © (2007-10-24 00:34) [4]А еще это все неплохо описано в книге Вирта «Алгоритмы и структуры данных». И даже с примерами не на вражеском языке :)
← →
Германн © (2007-10-24 01:12) [5]
> Джо © (24.10.07 00:34) [4]
Не знаю почему, но код в [0]
> (curr <> NIL)and(node.f_name > curr^.f_name)
сразу навёл меня на мысль о "чужом языке" :)
← →
(MiTch) © (2007-10-24 19:33) [6]
> curr - это указатель на область памяти, аcurr^ - это значение,
> на которое ссылается указатель.
это как раз понятно. понятно и как организовать просто динамический список. Не совсем ясно когда указатели друг на друга ссылаются. Сразу не определить что чему равно. Короче будем искать книжки, раз рекомендуют.
← →
(MiTch) © (2007-10-28 09:56) [7]Да! Да я догнал.Поздравьте меня.
А теперьче будем удалять ненужные элементы из списка)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.052 c