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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2013, 21:14   #1
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию Списки, ищу книгу(информацию).

Решил разобраться со списками
Односвязный список
Двусвязный список
Кольцевой список

Но чет, не могу найти информацию(не знаю где искать) в нете именно по дельфи, мб кто знает книги хорошие или сайтик который я не увидел, или наглядное видео, буду благодарен.
Heng вне форума Ответить с цитированием
Старый 30.09.2013, 21:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще литературы хватает Вот хотя бы самая ближайшая: http://ru.wikipedia.org/wiki/%D0%9E%...81%D0%BE%D0%BA
Есть и примеры:
Двусвязный: http://www.programmersforum.ru/showthread.php?t=87357
Гетерогенный: http://www.programmersforum.ru/showthread.php?t=92621
Вот еще нямка: http://www.programmersforum.ru/showthread.php?t=10915
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2013, 21:38   #3
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию

Дело в том что не могу разобраться в коде т.е. синтаксис не понимаю поэтому и нужна инфа которая мне и объяснит какой символ, что делает.
Вот например По Си урок http://www.youtube.com/watch?v=QKRngL_FBSs там буквально все разжевал, типо такого бы да Delphi
Если можно коротенький пример на Дельфи с основными действиями в списке.

Как назначить начало списка
Как назначить конец списка
Ну и указатели на каждый следующий

Последний раз редактировалось Heng; 30.09.2013 в 21:58.
Heng вне форума Ответить с цитированием
Старый 01.10.2013, 08:13   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Видеокурс http://www.intuit.ru/studies/courses/997/313/info
phomm вне форума Ответить с цитированием
Старый 01.10.2013, 16:20   #5
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию

Почему?, когда я создаю список вот этим кодом
Код:
new(p);
  p^.Marka:=s;
  p^.next:=nil;
  if (last=nil) and (first=nil) then
  begin
    first:=p;
    first^.prior:=nil;
  end
  else
  begin
    last^.next:=p;
    p^.prior:=last;
  end;
  last:=p;
а потом вывожу его этим

Код:
Form1.lbl4.Caption:='';
 if start=nil then writeln('List not init')
 else
 begin
 while (start<>nil) do
  begin
   Form1.lbl4.Caption:=Form1.lbl4.Caption+start^.Marka+' ';
   start:=start^.next;
  end;
 end;
Выводиться только последняя запись

и для чего создаем переменнюу prior: TPlist; ???
TList = record
Marka : String;
God : Integer;
Cena : Integer;
prior: TPlist;
next : TPList;
end;

Последний раз редактировалось Heng; 01.10.2013 в 16:23.
Heng вне форума Ответить с цитированием
Старый 01.10.2013, 17:17   #6
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию

Цитата:
Сообщение от Heng Посмотреть сообщение
Почему?, когда я создаю список вот этим кодом
Код:
new(p);
  p^.Marka:=s;
  p^.next:=nil;
  if (last=nil) and (first=nil) then
  begin
    first:=p;
    first^.prior:=nil;
  end
  else
  begin
    last^.next:=p;
    p^.prior:=last;
  end;
  last:=p;
а потом вывожу его этим

Код:
Form1.lbl4.Caption:='';
 if start=nil then writeln('List not init')
 else
 begin
 while (start<>nil) do
  begin
   Form1.lbl4.Caption:=Form1.lbl4.Caption+start^.Marka+' ';
   start:=start^.next;
  end;
 end;
Выводиться только последняя запись

и для чего создаем переменнюу prior: TPlist; ???
TList = record
Marka : String;
God : Integer;
Cena : Integer;
prior: TPlist;
next : TPList;
end;
Все вопрос снят, я просто процедуру инициализации списка написал на кнопку, и постоянно его обнулял ))
Heng вне форума Ответить с цитированием
Старый 02.10.2013, 07:30   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Цитата:
Сообщение от Heng Посмотреть сообщение

и для чего создаем переменнюу prior: TPlist; ???
TList = record
Marka : String;
God : Integer;
Cena : Integer;
prior: TPlist;
next : TPList;
end;
next - для односвязного списка, а prior для двусвязного или кольцевого.
Кстати, корректнее сказать "поле записи"/"поле", а не "переменная".
phomm вне форума Ответить с цитированием
Старый 02.10.2013, 16:06   #8
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию

Почему то когда вставляю элемент в середину списка, и сразу же вывести, то программа зависает
Код:
var
  ins,t,t1:TPList;
  label 1;
begin
  new(ins);
  ins^.ID:=Form1.Sort(s,IntToStr(g),IntToStr(c));
  ins^.Marka:=s;
  ins^.God:=g;
  ins^.Cena:=c;

  if first = nil then begin
    ins^.next:=nil;
    ins^.prev:=nil;
    first:=ins;
    last:=ins;
    goto 1;  //Äîñðî÷íûé âûõîä èç ïðîöåäóðû
  end;

  New(t);
  t:=first;

  if (t^.ID > ins^.ID) then begin
    ins^.next:=t;
    ins^.prev:=nil;
    first:=ins;
    goto 1;
  end;

  New(t1);
  t1:=t^.next;
  while t1<>nil do begin
    if (t^.ID < ins^.ID) and (ins^.ID < t1^.ID) then begin
      t^.next:=ins;
      t1^.prev:=ins;
      ins^.next:=t1;
      ins^.prev:=t;
    end;
    t:=t^.next;
    t1:=t^.next;
  end;
  t^.next:=ins;
  ins^.next:=nil;
  t^.prev:=t;
1:
end;
если я вывожу один и тот же список в разные мемо, в один с начала списка, в другой с конца списка, и тот который записан с конца - зависает, почему ?

Последний раз редактировалось Heng; 02.10.2013 в 16:19.
Heng вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу книгу... KrasotulKate Общие вопросы Delphi 7 11.07.2013 10:40
Ищу книгу Ilia2k Обсуждение статей 1 19.08.2012 11:51
Ищу информацию Claster Помощь студентам 5 25.10.2010 13:34
Ищу книгу... Astronaft Общие вопросы C/C++ 0 28.02.2010 19:52
Ищу книгу [MI_nor] Общие вопросы по Java, Java SE, Kotlin 1 19.10.2009 10:50