मान लीजिए, हमें दो बहुपद दिए गए हैं और हमें दो बहुपदों का योग ज्ञात करना है। बहुपदों को लिंक्ड सूचियों के रूप में दर्शाया जाना चाहिए; बहुपद की शर्तों को एक लिंक्ड सूची नोड के रूप में दर्शाया जाएगा। प्रत्येक लिंक्ड लिस्ट नोड में अगले लिंक्ड लिस्ट नोड के लिए गुणांक मान, पावर वैल्यू और पॉइंटर होगा। हमें एक तीसरी लिंक्ड सूची लौटानी होगी जो दो लिंक्ड सूची बहुपदों का जोड़ है।
तो, अगर इनपुट पसंद है
1x^1 + 1x^2 =0 और 2x^1 + 3x^0 =0,
तो आउटपुट 3x^1 + 1x^2 + 3x^0 =0
. होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
डमी :=एक नया बहुपद नोड
-
नोड:=एक नया बहुपद नोड
-
जबकि पॉली1 और पॉली2 खाली नहीं है, करें
-
यदि पॉली1 की शक्ति> पॉली2 की शक्ति, तो
-
नोड के आगे :=poly1
-
नोड:=पॉली1
-
poly1 :=poly1 के आगे
-
-
अन्यथा जब poly1 की शक्ति
-
नोड के आगे :=poly2
-
नोड:=पॉली2
-
poly2 :=poly2 के आगे
-
-
अन्यथा,
-
coef :=poly1 का गुणांक + poly2 का गुणांक
-
यदि कोफ गैर-शून्य है, तो
-
poly1 :=poly1 के आगे
-
poly2 :=poly2 के आगे
-
-
-
-
नोड के आगे :=poly1 या poly2
-
डमी के आगे लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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