Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Помогите с записями с вариантами

Автор: Valeri 19.11.2003 4:55

Привет)
У меня проблема:необходимо Реализовать очередь на базе динамического списка. Пользовательский элемент списка – либо 4, либо 8, либо 10-х байтное вещественное и двух строк переменной длины . Видимо пользоват.элемент-это хапись с вариантными полями для вещественного... Подскажите, плиз, как лучше реализовать эту запись и как в проге определить ключ выбора. Или дайтк ссылочку , где мона про это почитать)
Заранее пасибо)

Автор: mj 19.11.2003 14:19

type
 TRec = record
   Data: Variant;
   Str1: string;
   Str2: string;
 end;

var
 A: array of TRec;

Автор: mj 19.11.2003 14:25

Вообще очередь на базе списка точно не делают, пусть и динамического...

Тип для настоящей очереди

Код
type
 PRec = ^TRec;
 TRec = record
   Data: Variant;
   Str1: string;
   Str2: string;    
   NextRec: PRec;
 end;


Тип для настоящего стека
Код
type
 PRec = ^TRec;
 TRec = record
   Data: Variant;
   Str1: string;
   Str2: string;    
   PrevRec: PRec;
 end;


Выделене памяти и уничтожение

New(Rec);
Dispose(Rec);

При использовании очереди для быстрого доступа желательно хранить в переменных адреса последнего и первого элементов...

При использовании стека для быстрого доступа достаточно хранить в переменной только адрес последнего элемента...

Автор: vf 16.01.2004 1:10

Хорошо, но как потом это все хозяйство записать в Файл и считать из него обратно?