Помогите!

Тема в разделе "Delphi - Базы данных", создана пользователем DartVoron, 22 дек 2005.

Статус темы:
Закрыта.
  1. DartVoron

    DartVoron Гость

    Помогите решить задачу по паскалю.

    :lol: Разработать алгоритм и программу решения задачи, в которой сформировать односвязный линейный список.
    :) Разработать алгоритм и программу решения задачи, в которой сформировать кольцевой односвязный список.

    Припод дал задачу, а как ее решать ни словом ни духом не намекнул..
     
  2. DZX

    DZX Гость

    Почитай про стеки и очереди.
     
  3. DartVoron

    DartVoron Гость

    А ЧТО ПОЧИТАТЬ, ПОДСКАЖИ , А ТО НЕЧЕГО ЧИТАТЬ, А ЧТО ЕСТЬ ТАМ НЕТ ПРИМЕРОВ ПРОГРАММ. :)
     
  4. Hetman

    Hetman Гость

    Умеючи в Интернете можно найти всё:

    На оригинал ссылоки нет (сохранился только в кэше google)

    Кстати есть и вот такой метериальчик (поиск занял менее 5 минут)
     
  5. DartVoron

    DartVoron Гость

    :D НУ СПОСИБО ЗА СТЕК, НО ВСЕЖЕ, МНЕ НУЖЕН КОЛЬЦЕВОЙ ОДНОСВЯЗНЫЙ СПИСОК :D А НЕ СТЕК.........
     
  6. Guest_Shader88_*

    Guest_Shader88_* Гость

    Вообще советую почитать Н. Вирт "Алгоритмы и структуры данных", так она по моему называется. Их три тома читай все - настоятельно рекомендую.
    Одна из Библий программера.

    Ответ на вопрос 1:
    [codebox]
    ...
    type
    { описание структуры односвязный линейный список }
    TList = ^List;
    List = record
    { твои данные которые будешь хранить в списке}
    Str : String; { например строки}
    Next: TList;
    end;
    { описание структуры односвязный линейный список }

    procedure CreateList(var L: TList);
    begin
    L := nil;
    end;

    procedure DeleteList(var L: TList);
    var
    L1: TList;
    begin
    if L = nil then exit;
    while L <> nil do
    begin
    L1 := L;
    L := L.Next;
    Dispose(L1);
    end;
    end;

    { Добавление в конец списка - например строк}
    procedure AddToList(var L: TList; S : String);
    var
    L1, L2: TList;
    begin
    L1 := L;
    if L1 = nil
    then begin
    new(L1);
    L1.Str := S;
    L := L1;
    L.Next := nil;
    exit;
    end;
    while L1.Next <> nil do
    L1 := L1.Next;

    new(L2);
    L2.Str := S;
    L2.Next := nil;
    L1.Next := L2;
    end;

    { Вывод списка}
    procedure OutList(L: TList);
    var
    L1: TList;
    begin
    L1 := L;
    while L1 <> nil do
    begin
    Writeln(L1.Str);
    L1 := L1.Next;
    end;
    end;

    var
    ListExample: TList;
    begin
    CreateList(ListExample);
    AddToList(ListExample,'abcdef');
    AddToList(ListExample,'gh');
    OutList(ListExample);
    DeleteList(ListExample);
    end.
    [/codebox]
    Проверял работает.

    Ответ на вопрос 2:
    [codebox]
    ...
    type
    { Описание структуры кольцевой односвязный список}
    TList = ^List;
    List = record
    { твои данные которые будешь хранить в списке }
    Str : String; { например строки }
    Next: TList;
    end;
    { Описание структуры кольцевой односвязный список}

    procedure CreateList(var L: TList);
    begin
    L := nil;
    end;

    procedure DeleteList(var L: TList);
    var
    L1, L2: TList;
    begin
    if L = nil then exit;
    if L.Next = L
    then begin
    Dispose(L);
    exit;
    end;
    L2 := L;
    L := L.Next;
    while L <> L2 do
    begin
    L1 := L;
    L := L.Next;
    Dispose(L1);
    end;
    Dispose(L2);
    end;

    { Добавление в конец списка - например строк хотя тут это звучит}
    procedure AddToList(var L: TList; S : String);
    var
    L1, L2: TList;
    begin
    L1 := L;
    if L1 = nil
    then begin
    new(L1);
    L1.Str := S;
    L := L1;
    L.Next := L;
    exit;
    end;
    while L1.Next <> L do
    L1 := L1.Next;

    new(L2);
    L2.Str := S;
    L2.Next := L;
    L1.Next := L2;
    end;

    { Вывод списка }
    procedure OutList(L: TList);
    var
    L1: TList;
    begin
    if L = nil then exit;
    Writeln(L.Str);
    L1 := L.Next;
    while L1 <> L do
    begin
    Writeln(L1.Str);
    L1 := L1.Next;
    end;
    end;

    var
    ListExample: TList;
    begin
    CreateList(ListExample);
    AddToList(ListExample,'asdvgsd');
    AddToList(ListExample,'asda');
    OutList(ListExample);
    DeleteList(ListExample);
    end.
    [/codebox]

    Еще раз рекомендую почитать Вирта. :D


    ВСЕМ ЗАВИСТНИКАМ И НЕДОБРОЖЕЛАТЕЛЯМ:)D):

    По поводу прог, может быть я где и лоханул :D , но я пытался показать как это делается, а не писал программы на заказ.
     
  7. DartVoron

    DartVoron Гость

    НУ это и требывалась, Спосибо, а Вирта , случайно нет в электронном виде? :D
     
  8. Shader88

    Shader88 Гость

    Нет, в электронном нет.
    У меня в печатном есть. :)

    Так что сам поищи и скачай.

    Успехов. :p
     
  9. DartVoron

    DartVoron Гость

    Может кто знает хороший сайт где есть книги? :)
     
  10. Hetman

    Hetman Гость

  11. DartVoron

    DartVoron Гость

    Такой бы сайт куда жашел а там все есть!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей