Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1192551893
Win
2007-10-16 20:24
2007.11.18
WinXP


15-1191912471
Vlad Oshin
2007-10-09 10:47
2007.11.18
Почему такое происходит? с сайтом или у меня?


3-1182264642
Fredy314
2007-06-19 18:50
2007.11.18
Выборка за месяц по дням


15-1192438559
Gydvin
2007-10-15 12:55
2007.11.18
Настройка модема


8-1154587038
vladimirg88
2006-08-03 10:37
2007.11.18
Звук при загрузке формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский