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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 03:22   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Восклицание Организация стека

Здравствуйте!

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

Помогите пожалуйста.

Не когда не имел дело со стеком, вот почему и создал эту тему. Если можно с описанием, очень нужно.

Заранее очень благодарен!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 10.12.2010, 05:57   #2
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Мне кажется, что Вы не совсем понимаете, чего хотите.
Нельзя организовать стек очереди. Можно организовать стек, очередь, стек очередей или очередь стеков

Тем не менее, посмотрите модуль Contnrs, там скорее всего есть то, что Вам нужно. Это стандартный (по крайней мере для Delphi 7) модуль, в котором есть такие классы:
TStack - реализация стека для указателей
TQueue - реализация очереди для указателей
TObjectList - список объектов
TObjectQueue - очередь объектов
TObjectStack - стэк объектов
и много другого, нужного и полезного

Это если надо уже что-то готовое. Если же надо написать собственную реализацию для учебных целей, то можно почитать книгу "Фундаментальные алгоритмы и структуры данных в Delphi". Найти и скачать её будет не очень трудно.
Greek9000 вне форума Ответить с цитированием
Старый 10.12.2010, 06:20   #3
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость

Цитата:
Сообщение от Greek9000 Посмотреть сообщение
Мне кажется, что Вы не совсем понимаете, чего хотите.
Нельзя организовать стек очереди. Можно организовать стек, очередь, стек очередей или очередь стеков

Тем не менее, посмотрите модуль Contnrs, там скорее всего есть то, что Вам нужно. Это стандартный (по крайней мере для Delphi 7) модуль, в котором есть такие классы:
TStack - реализация стека для указателей
TQueue - реализация очереди для указателей
TObjectList - список объектов
TObjectQueue - очередь объектов
TObjectStack - стэк объектов
и много другого, нужного и полезного

Это если надо уже что-то готовое. Если же надо написать собственную реализацию для учебных целей, то можно почитать книгу "Фундаментальные алгоритмы и структуры данных в Delphi". Найти и скачать её будет не очень трудно.
Да вы правы я сам не до конца понимаю что и как.
Можно либо какой примерчик по поводу организации стека хотя бы.
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 10.12.2010, 09:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

TStack чем не устроил? Примеры в хелпе есть. Описание там же.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2010, 14:02   #5
Я_и
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 37
По умолчанию

Организация стека:
Type
DataType=Pointer;//Тип данных стека.. Можно использовать указатель на
//что угодно или лобой тип (Integer,TPoint и т.д.)
PStack1=^TStack1;
TStack1=record
Data:DataType;
Next:PStack1;
end;

Это - своего рода зацикливание. Для хранения стека необходима одна переменная типа PStack1. Принцип такой: Next указывает на следующий элемент или, если Next=nil, на то, что стек закончился (пуст, если указатель на стек равен nil).
В стеке реализован принцип LIFA (Last In First Out)...
Я загрузил свой стек... Только там DataType - это базис векторов)))) Замените его на Pointer и все будет нормально.... Для инициализации стека нужно лишь указателю присвоить nil.
Вложения
Тип файла: rar Stek.rar (476 байт, 55 просмотров)
Я_и вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение стека NoHeart Общие вопросы Delphi 8 08.11.2009 16:03
Переполнение стека Ake Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2009 22:39
Реализация Стека MjRed Общие вопросы C/C++ 3 13.05.2009 12:18
Заполнение стека inkvizitor Общие вопросы Delphi 5 08.10.2007 17:01