![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Указатели
EXILE © (2006-03-30 16:37: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
curr node^.next:=рre^.next;
рrе^.next:=node;
end;
Edit1.text:='';
Edit2.text:='';
Edit1.SetFocus;
end;
так то вроде все понятно кроме одного как работают указатели...ну вот к примеру взять это
while (curr <> nil) and (node.f_name>curr^.name) do
begin
pre:=curr;
curr:=curr^.next; // т.е. к следующему узлу, но как я понимаю если введенное значение больше текущего то предыдущему мы присваиваем текущее и по указателю текущего переходим к следующему...но следующим является pre, а так как pre:=curr, они содержат одни и теже данные.................
вообщем чето я не пойму как они обьясните кто нибуть простым языком что да как, (как работает вся прог-ма обьяснять не надо ток про указатели) плиз
EXILE (2006-03-30 16:47:00) [1]> Сергей М. © (30.03.06 16:44) [2]
Хм так я про их работу и спрашиваю
EXILE (2006-03-30 16:46:00) [2]:) это я и сам знаю, что кудато, непонятен сам принцып действия
вот это тож:
node^.next:=pre^.next // как я понял мы меняем местами указатели новый узел казывает на тот узел на который указывал предыдущий,
pre^.next:=node; // а предыдущий указывает на новый....вроде так
Сергей М. (2006-03-30 16:44:00) [3]
> обьяснять не надо ток про указатели
А иначе и нет смысла тебе что-то еще объяснять.
В работе механизма указателей - вся соль этого алгоритма.
Anatoly Podgoretsky (2006-03-30 16:41:00) [4]Они указывают куда то.