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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2014, 11:53   #11
Елена1995
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 10
По умолчанию

значит предлагает....если такое задание задали

мне надо сделать упорядоченное добавление в одной процедуре

Последний раз редактировалось Stilet; 27.04.2014 в 13:09.
Елена1995 вне форума Ответить с цитированием
Старый 27.04.2014, 13:33   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты не понимаешь... )
Ладно. Пойдем другим путем:
Код:
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

type
 TDataTipe=integer;
 PTItem=^TItem;
 TItem=Record
  Data:TDataTipe;
  Prev,Next:PTItem;
 end;

 { TListCircle }

 TListCircle=class
  private
   Head,CurItem:PTItem;
  public
    Function Ins(AData:TDataTipe):PTItem;
    function outt:boolean;
    destructor Free;
    Constructor Create;
 end;


 { TListCircle }

 function TListCircle.Ins(AData: TDataTipe): PTItem;
 begin
   new(result);
   result^.Data:=AData;
   CurItem:=Head;
   if CurItem=nil then begin
     Head:=Result;
     Head^.Next:=Head;
     Head^.Prev:=Head;
     Exit;
   end;
   repeat
    if CurItem^.Data>AData then begin
      Result^.Next:=CurItem;
      Result^.Prev:=CurItem^.Prev;
      CurItem^.Prev^.Next:=Result;
      CurItem^.Prev:=Result;
      if CurItem=Head then Head:=Result;
      Exit;
    end;
   until CurItem=Head;

   Result^.Next:=Head;
   Result^.Prev:=CurItem^.Prev;
   CurItem^.Prev^.Next:=Result;
   Head^.Prev:=Result;

 end;

 function TListCircle.outt: boolean;
 var i:integer;
 begin
   CurItem:=Head;
   repeat
     write(curitem^.data:5);
     CurItem:=CurItem^.Next;
   until CurItem=Head;
 end;

 destructor TListCircle.Free;
 begin

 end;

 constructor TListCircle.Create;
 begin
   Head:=nil;   CurItem:=Head;
 end;

 begin
 with TListCircle.Create do begin
    Ins(5);
    Ins(2);
    Ins(6);
    Ins(1);
    outt;
  free;
 end;
    Readln;
   { TODO -oUser -cConsole Main : Insert code here }
 end.
Этот код должен отрабатывать кольцевой список сортируя на этапе вставки.
Мне только не удалось нормально деструктор сделать, это уже сама.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2014, 21:14   #13
Елена1995
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 10
По умолчанию

Спасибо большое, но это не то что мне нужно(
Елена1995 вне форума Ответить с цитированием
Старый 27.04.2014, 21:19   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что ж. Значит я не смог понять задание. Сумимасен Елена-сан.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Двунаправленный список M_Asja Помощь студентам 4 15.01.2013 18:47
Двунаправленный список de_coder Паскаль, Turbo Pascal, PascalABC.NET 2 15.10.2012 12:41
двунаправленный список triple56 Общие вопросы C/C++ 0 18.12.2011 19:33
Двунаправленный список grave123 Общие вопросы C/C++ 1 08.03.2010 10:44
Двунаправленный список dip Помощь студентам 3 02.03.2010 12:16