![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.11.2009
Сообщений: 218
|
![]() Здравствуйте! Мне нужно организовать стек очереди для любого типа данных не используя массивы в том числе и динамические. Помогите пожалуйста. Не когда не имел дело со стеком, вот почему и создал эту тему. Если можно с описанием, очень нужно. Заранее очень благодарен!
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 151
|
![]()
Мне кажется, что Вы не совсем понимаете, чего хотите.
Нельзя организовать стек очереди. Можно организовать стек, очередь, стек очередей или очередь стеков ![]() Тем не менее, посмотрите модуль Contnrs, там скорее всего есть то, что Вам нужно. Это стандартный (по крайней мере для Delphi 7) модуль, в котором есть такие классы: TStack - реализация стека для указателей TQueue - реализация очереди для указателей TObjectList - список объектов TObjectQueue - очередь объектов TObjectStack - стэк объектов и много другого, нужного и полезного ![]() Это если надо уже что-то готовое. Если же надо написать собственную реализацию для учебных целей, то можно почитать книгу "Фундаментальные алгоритмы и структуры данных в Delphi". Найти и скачать её будет не очень трудно. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 07.11.2009
Сообщений: 218
|
![]() Цитата:
Можно либо какой примерчик по поводу организации стека хотя бы.
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности ![]() |
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
TStack чем не устроил? Примеры в хелпе есть. Описание там же.
I'm learning to live...
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переполнение стека | 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 |