помогите, пожалуйста, как можно сложить 2 многочлена при помощи стека?
Гость
27.11.2007 3:00
очень надо! срочно!
мисс_граффити
27.11.2007 4:42
показывай, что пробовал(а) делать
damir
2.12.2007 0:36
я вообще не знаю как подобраться! тему толком не объяснили.
pascal65536
2.12.2007 16:38
А что на этот счет пишут в интернете?
damir
3.12.2007 1:59
сколько я не рыл, накрпать ни че не удалось.
Гость
9.12.2007 4:12
я смог сделать задачю с помощью масивов. а со стэками тока на бумаге в виде картинок. получилось так: создаем 3 стэка a,b,с (2 для многочленов + 1 для сумма), длиной равной наивысшей степени переменной + 1 (для свободного члена). создаем 3 указателя q,w и s направленные на начала стеков соответственно a,b,c. заполняем стеки, если один многочлен длиннее другого то пустые остаются равными нулю. потом запускаем цикл от 1 до длинны стека. s:=q+w (как правильно написать не знаю). потом все указатели перенаправляются на следуюшие элементы и все пвторяется. цикл заканчивается. вывод стека с. помоуму так. но как код выглядит я даже не могу предположить.
Michael_Rybak
9.12.2007 4:29
ну вот так и пиши.
что именно не получается?
создаешь три стека, создаем три указателя и т.д., у тебя ведь все написано.
damir
9.12.2007 4:46
как создать эти три стэка, указателя. я пытался иожет че касячю, но не смог. как сдлать так допустим есть две ячейки стека, есть указаттель A, указывающий на первую. как посмотреть значение этой ячейки???
Michael_Rybak
9.12.2007 4:52
Цитата
как посмотреть значение этой ячейки???
разыменовать указатель А.
сначала разберись, как вообще стек реализуется.
damir
9.12.2007 5:21
program pp(st);
type
ptr=^stack;
stack=record
info:real; {это значение ячейки?}
next:ptr; {это указатель на следуюшию ячейку?}end;
var top,a:^stack; {стэк а?}
top,b:^stack;
top,c:^stack;
begin{создали стек а, направили указатель a на него?}
new(a);
a^.next:=nil;
top:=a;
{---------}
new(b);
b^.next:=nil;
top:=b;
{---------}
new(с);
c^.next:=nil;
top:=c;
end.
Michael_Rybak
9.12.2007 6:49
ты трижды объявляешь переменную top.
ну, для начала заполни стеки А и В. посмотри в faq модуль для работы со стеком.
damir
9.12.2007 23:51
var top,a,b,c:^stack; {так? или для каждого стека нужен свой top? типа top_a, top_b, tor_c}begin{далее тотже код}
еще вот создание стека
First: = nil; {начало с пустого списка}While n>0dobegin
New(r);
r^.Next:=first;
r^.Number:=n;
First:=r;
n := n-1end;
First будет началом стека???
damir
18.12.2007 22:50
ВСЁ. СДЕЛАЛ!!! кому нить понадобатся пришлю
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.