помогите, пожалуйста, как можно сложить 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>0 do begin New®; r^.Next:=first; r^.Number:=n; First:=r; n := n-1 end;
First будет началом стека???
damir
18.12.2007 22:50
ВСЁ. СДЕЛАЛ!!! кому нить понадобатся пришлю
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.