IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Стеки
сообщение
Сообщение #1


Гость






Блин эти фиговы штуки... Теорию поняла... хочу вывести в Мемо. как ето сделать? blink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Memo1.Clear;

bufS:=stek;
while bufS<>nil do
begin
Memo1.Lines.Add(bufS.FIO);
bufS:=bufS.Prev;
end;

где stek-вершина стека, bufS.Prev-указатель на предыд. узел, bufS.FIO - поле которое хочешь вывести
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Смотрите такой прикол - у меня генериться рандомно стек из 10 элементов. у мя есть кнопка добавить и так как ето стек, то "последний пришел, первый вышел". Мну не знаю. это к одной кнопке две функции привязать. че написать что б первый убирал. или просто как со списком сделать. или эту функцию оставить?

procedure TStack.Push(a: string);
var P:PNode;
begin
new(P);
P.Next := head;
head := P;
P.Info := a;
Stsize := Stsize + 1;
end;

procedure TStack.Pop (var a: string);
var P: PNode;
begin
if not Empty then
begin
P := FNode;
FNode := P.Next;
a := P.Info;
dispose(P);
end;
end;

{кнопка вставить}
procedure TForm1.Button1Click(Sender: TObject);
var
ch: string;
i: integer;
begin
{Stack := TStack.Create;}
i := 1;
ch := Memo2.Lines [0];
Stack.Push(ch);
{stack.Pop(head); }
inc(i);
end;

{кнопка список}
procedure TForm1.Button2Click(Sender: TObject);
var
P: Pnode;
begin
Memo1.Clear;
New(P);
P := head;
while P <> nil do
begin
Memo1.Lines.Add(P.Info);
P := P.Next;
end;
dispose(p);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
P: PNode;
begin
stolbik:='';
p := head;
Randomize;
for n:= 1 to 10 do
begin
new (p);
p.Info:= IntToStr(Random(15));
stolbik := '';
p.Next := head;
head := p;
stolbik := stolbik + p.Info + #13;
p := p.Next;
end;
end;


 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ладно...с этим со всем вроде разобралась. а вот смысл очереди для меня остается загадочным...
первый пришел, первый ушел. эт как?
допустим у мя массив(ну очередь) 1 2 3 4 5
я ввожу 9. и че получается 9 2 3 4 5?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Стек - труба открытая с одной стороны. Иначе называется магазин. С одной стороны вставляем патроны и с того же конца их в обратном порядке достаем.
А очередь - труба открытая с двух сторон: с одной стороны в нее запихиваем, а с другой - достаем. Естественно, в том же порядке, что и запихнули.

Кстати, у меня сложилось впечатление, что ты не совсем верно представляешь механизм функционирования стека: "пришел" и "ушел" - две разные операции, а не одна.
т.е.

Стек:
12345
запихиваем 9 -> 912345
достаем(9) -> 12345

Очередь:
12345
запихиваем -> 912345
достаем (5) - 91234
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
смысл очереди для меня остается загадочным...

Было: <1, 2, 3, 4, 5>
Добавляешь 9: <1, 2, 3, 4, 5, 9>
Читаешь один элемент - читается 1... То есть, добавляется информация в конец, а читается с начала...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Спасиб. На конец-то все по полочкам разложилось blum.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 17:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name