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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 18:30   #1
seo-romka
Пользователь
 
Регистрация: 22.12.2010
Сообщений: 11
Восклицание Динамические списки

Решил попробовать, что это такое! Изучил как заполнять, а вот никак не могу считать все элементы, точнее бегунок не могу переместить в начало, выводит лишь последний элемент!
Код:
program _spiski;
{$APPTYPE CONSOLE}
uses
  SysUtils;

Type
    MyS = ^el_sp;
    el_sp=Record
      data:Integer;
      next:MyS;
  End;
Var ech:MyS; 
    q,i:integer;
    
Procedure Print_s(ech:MyS);
Begin
  While ech<>nil do
    Begin
      Write(ech^.data:3);
      ech:=ech^.next;
    End;
End;

begin
for i:=1 to 3 do Begin
  New(ech);
  ech^.next:=nil;
  write('BBeguTe q ');
  readln(q);
  ech^.data:=q;
End;
  Print_s(ech);
  readln;
end.
seo-romka вне форума Ответить с цитированием
Старый 09.03.2011, 18:57   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

поменяйко это
Код:
for i:=1 to 3 do Begin
  New(ech);
  ech^.next:=nil;
  write('BBeguTe q ');
  readln(q);
  ech^.data:=q;
End;
на это:
Код:
pred:=nil;
for i:=1 to 3 do Begin
  New(ech);
  ech^.next:=pred;
  write('BBeguTe q ');
  readln(q);
  ech^.data:=q;
  pred:=ech;
End;

Последний раз редактировалось Летучий_СкилетиК; 09.03.2011 в 19:06.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 09.03.2011, 19:30   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Изучил как заполнять

плохо изучили.


Код:
program
  LinkedList;

{$APPTYPE CONSOLE}

type
  pListItem = ^listItem;
  listItem = record
    //
    data: Integer;
    next: pListItem;
  end;

// --  --
procedure printList(head: pListItem);
begin
  while (nil <> head) do begin
    //
    write(head.data);
    head := head.next;
  end;
end;

var
  listHead, newItem: pListItem;
  q, i: integer;

begin
  newItem := nil; // make compiler happy
  listHead := nil; // make compiler happy
  //
  for i := 1 to 3 do begin
    //
    if (nil = listHead) then begin
      //
      new(listHead);
      listHead.next := nil;
      newItem := listHead;
    end
    else begin
      //
      new(newItem.next);
      newItem := newItem.next;
    end;
    //
    write('Enter data: ');
    readln(q);
    //
    newItem.data := q;
  end;
  //
  printList(listHead);
  readln;
end.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические списки МихаилС Паскаль, Turbo Pascal, PascalABC.NET 0 30.01.2011 16:55
Динамические списки Bapr Паскаль, Turbo Pascal, PascalABC.NET 1 28.05.2010 16:36
Динамические списки Pavelhr Помощь студентам 0 08.01.2010 02:55
Динамические списки MyQwErTy Помощь студентам 3 14.04.2009 20:08