মান লাগিয়ে, আমাদের দুটি পলিনোমিয়াল দেওয়া আছে এবং আমাদের তাদের যোগফল বের করতে হবে। পলিনোমিয়ালগুলো লিংকড লিস্ট হিসেবে রিপ্রেজেন্ট করা থাকবে; পলিনোমিয়ালের টার্মগুলো লিংকড লিস্ট নোড হিসেবে রিপ্রেজেন্ট করা থাকবে। প্রতিটি লিংকড লিস্ট নোডে থাকবে কোইফিশিয়েন্ট মান, পাওয়ার মান, এবং পরবর্তী লিংকড লিস্ট নোডের পয়েন্টার। আমাদের একটি তৃতীয় লিংকড লিস্ট রিটার্ন করতে হবে যা দুটি লিংকড লিস্ট পলিনোমিয়ালের যোগফল।
যেমন, ইনপুট যদি এমন হয়:

1x^1 + 1x^2 = 0 এবং 2x^1 + 3x^0 = 0,
তবে আউটপুট হবে 3x^1 + 1x^2 + 3x^0 = 0
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- dummy := একটি নতুন পলিনোমিয়াল নোড
- node := একটি নতুন পলিনোমিয়াল নোড
- poly1 এবং poly2 খালি না হওয়া পর্যন্ত:
- যদি poly1.power > poly2.power হয়, তবে:
- node.next := poly1
- node := poly1
- poly1 := poly1.next
- অন্যথায় যদি poly1.power < poly2.power হয়, তবে:
- node.next := poly2
- node := poly2
- poly2 := poly2.next
- অন্যথায়:
- coef := poly1.coefficient + poly2.coefficient
- যদি coef নন-জিরো হয়, তবে:
- poly1 := poly1.next
- poly2 := poly2.next
- যদি poly1.power > poly2.power হয়, তবে:
- node.next := poly1 বা poly2
- dummy.next রিটার্ন করুন
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:
উদাহরণ
class polynomial:
def __init__(self, coeff = 0, pow = 0, nxt = None):
self.coefficient = coeff
self.power = pow
self.next = nxt
def create_poly(expression):
head = None
for element in expression:
if head == None:
head = polynomial(element[0], element[1])
else:
temp = head
while temp.next != None:
temp = temp.next
if temp.next == None:
temp.next = polynomial(element[0], element[1])
return head
def show_poly(head):
temp = head
while temp.next != None:
print(str(temp.coefficient) + 'x^' + str(temp.power), end = ' + ')
temp = temp.next
if temp.next == None:
print(str(temp.coefficient) + 'x^' + str(temp.power), end=' = 0')
def solve(poly1, poly2):
dummy = node = polynomial()
while poly1 and poly2:
if poly1.power > poly2.power:
node.next = node = poly1
poly1 = poly1.next
elif poly1.power < poly2.power:
node.next = node = poly2
poly2 = poly2.next
else:
coef = poly1.coefficient + poly2.coefficient
if coef: node.next = node = polynomial(coef, poly1.power)
poly1 = poly1.next
poly2 = poly2.next
node.next = poly1 or poly2
return dummy.next
poly1 = create_poly([[1,1], [1,2]])
poly2 = create_poly([[2,1], [3, 0]])
poly3 = solve(poly1, poly2)
show_poly(poly3)
ইনপুট
poly1 = create_poly([[1,1], [1,2]]) poly2 = create_poly([[2,1], [3, 0]])
আউটপুট
3x^1 + 1x^2 + 3x^0 = 0