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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2008, 09:13   #1
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию очередь

Нужно создать простенькую очередь для хранения целых чисел. Помнится, в паскале очередь обычно создавалась через указатели, в делфи я б ее сделала через динамический массив. Подскажите, может какие-то еще средства есть в делфе?
odi_noki вне форума Ответить с цитированием
Старый 24.10.2008, 10:02   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Проблема создать (наверное самую быструю) систему узлов чтоли ? например

Код:
type 
  PLink = ^TLink;
  TLink = packed record
    Value: Integer;
    Next: PLink;
  end;

function Add(var FirstLink: PLink; Value: Integer): PLink;
var
  p: PLink;
begin
  if (FirstLink = NIL) then
  begin
    new(p);
    FirstLink := p;
  end else
  begin
    p := FirstLink;
    while (p^.Next <> NIL) do
      p := p^.Next;
    new(p^.Next);
    p := p^.Next;
  end;
  p^.Next := NIL;
  p^.Value := Value;
  Result := p;
end;

procedure Remove(var FirstLink: PLink);
var
  p: PLink;
begin
  if (FirstLink <> NIL) then
  begin
    p := FirstLink;
    FirstLink := FirstLink^.Next;
    dispose(p);
  end;
end;
Вроде все верно, писал сдесь так что...

Последний раз редактировалось BOBAH13; 24.10.2008 в 11:31.
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2008, 11:02   #3
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

очередь как в магазине за хлебом - первый поток (продавец) считывает инфу от первого в очереди, после чего первый уходит, второй поток (покупатель) добавляет себя в конец очереди. То есть нужны 2 процедуры - добавить в очередь и удалить первый элемент.
BOBAH13,
Если не сложно пропишите эти процедуры на описанных типах данных - указатели поддаются мне с трудом.
odi_noki вне форума Ответить с цитированием
Старый 24.10.2008, 12:09   #4
odi_noki
Пользователь
 
Регистрация: 23.06.2008
Сообщений: 77
По умолчанию

Все ясно, огромное спасибо
odi_noki вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
Создать очередь из n целых чисел вычисляющая по формуле А=х*х+1; evrey Паскаль, Turbo Pascal, PascalABC.NET 1 02.06.2008 20:44
Создать очередь из n целых чисел вычисляющих по формуле А=х*х+1; х=1,2,3..n. evrey Помощь студентам 3 01.06.2008 00:00
процессы выполнялись сразу, не ставясь в очередь Var17 Win Api 3 03.05.2008 12:57
Очередь, нид хэлп Roman-S Общие вопросы C/C++ 1 15.03.2008 23:40