помогите, пожалуйста, как можно сложить 2 многочлена при помощи стека?
очень надо! срочно!
показывай, что пробовал(а) делать
я вообще не знаю как подобраться! тему толком не объяснили.
А что на этот счет пишут в интернете?
сколько я не рыл, накрпать ни че не удалось.
я смог сделать задачю с помощью масивов. а со стэками тока на бумаге в виде картинок.
получилось так: создаем 3 стэка a,b,с (2 для многочленов + 1 для сумма), длиной равной наивысшей степени переменной + 1 (для свободного члена). создаем 3 указателя q,w и s направленные на начала стеков соответственно a,b,c. заполняем стеки, если один многочлен длиннее другого то пустые остаются равными нулю. потом запускаем цикл от 1 до длинны стека. s:=q+w (как правильно написать не знаю). потом все указатели перенаправляются на следуюшие элементы и все пвторяется. цикл заканчивается. вывод стека с.
помоуму так. но как код выглядит я даже не могу предположить.
ну вот так и пиши.
что именно не получается?
создаешь три стека, создаем три указателя и т.д., у тебя ведь все написано.
как создать эти три стэка, указателя. я пытался иожет че касячю, но не смог. как сдлать так допустим есть две ячейки стека, есть указаттель A, указывающий на первую. как посмотреть значение этой ячейки???
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.
ты трижды объявляешь переменную top.
ну, для начала заполни стеки А и В. посмотри в faq модуль для работы со стеком.
var top,a,b,c:^stack; {так? или для каждого стека нужен свой top? типа top_a, top_b, tor_c}
begin {далее тотже код}
First: = nil; {начало с пустого списка}
While n>0 do
begin
New®;
r^.Next:=first;
r^.Number:=n;
First:=r;
n := n-1
end;
ВСЁ. СДЕЛАЛ!!! кому нить понадобатся пришлю