Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम: लिंक्ड लिस्ट के अंतिम N नोड्स का गुणनफल ज्ञात करना

मान लें हमारे पास लिंक्ड लिस्ट में कुछ तत्व हैं। हमें अंतिम n तत्वों का गुणनफल परिणाम ज्ञात करना है। n का मान भी दिया गया है। इसलिए यदि सूची [5, 7, 3, 5, 6, 9] की तरह है, और n = 3, तो परिणाम 5 * 6 * 9 = 270 होगा।

प्रक्रिया सीधी है। हम बस बाईं ओर से शुरू होने वाले वर्तमान तत्व को पढ़ते हैं, फिर तत्वों को स्टैक में जोड़ते हैं। स्टैक भरने के बाद, n तत्वों को हटाएं और उन्हें prod से गुणा करें (प्रारंभ में prod 1 है), जब n संख्या के तत्व पार हो जाएं, तो रुकें।

उदाहरण

#include <iostream>
#include <stack>
using namespace std;

class Node {
public:
    int data;
    Node *next;
};

Node* getNode(int data) {
    Node *newNode = new Node;
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

void append(struct Node** start, int key) {
    Node* new_node = getNode(key);
    Node *p = (*start);
    if (p == NULL) {
        (*start) = new_node;
        return;
    }
    while (p->next != NULL) {
        p = p->next;
    }
    p->next = new_node;
}

long long prodLastNElements(Node *start, int n) {
    if (n <= 0)
        return 0;
    stack stk;
    long long res = 1;
    Node* temp = start;
    while (temp != NULL) {
        stk.push(temp->data);
        temp = temp->next;
    }
    while (n--) {
        res *= stk.top();
        stk.pop();
    }
    return res;
}

int main() {
    Node *start = NULL;
    int arr[] = {5, 7, 3, 5, 6, 9};
    int size = sizeof(arr) / sizeof(arr[0]);
    int n = 3;
    for (int i = 0; i < size; i++) {
        append(&start, arr[i]);
    }
    cout << "Product of last n elements: " << prodLastNElements(start, n);
}

आउटपुट

Product of last n elements: 270
  1. C++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग C++ में लिंक्ड सूची के वैकल्पिक नोड्स का योग

    इस समस्या में, हमें एक लिंक्ड सूची दी गई है। हमारा कार्य लिंक्ड सूची के वैकल्पिक नोड्स का योग प्रिंट करना है। लिंक्ड सूची डेटा संरचनाओं का एक क्रम है जो लिंक्स के माध्यम से एक साथ जुड़े हुए हैं। अब, आइए समस्या पर वापस आते हैं। यहां, हम लिंक्ड सूची के वैकल्पिक नोड्स को जोड़ेंगे। इसका मतलब है हम

  1. C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स की गिनती करें C++ में सर्कुलर लिंक्ड लिस्ट में नोड्स की गिनती करें

    हमें नोड्स के साथ एक सर्कुलर लिंक्ड लिस्ट दी गई है और कार्य सर्कुलर लिंक्ड लिस्ट में मौजूद नोड्स की संख्या की गणना करना है। सर्कुलर लिंक्ड लिस्ट लिंक्ड लिस्ट का एक प्रकार है जिसमें पहला तत्व अंतिम तत्व की ओर इंगित करता है और अंतिम तत्व पहले तत्व की ओर इंगित करता है। सिंगली लिंक्ड लिस्ट और डबली लिं

  1. C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

    मान लीजिए हमारे पास एक धनात्मक पूर्णांक L है, जो परफेक्ट बाइनरी ट्री में स्तरों की संख्या दर्शाता है। इस परफेक्ट बाइनरी ट्री में पत्ती नोड्स को 1 से n तक संख्या दी गई है। जहां n पत्ती नोड्स की संख्या है। पैरेंट नोड बच्चों का योग है। हमारा कार्य इस परफेक्ट बाइनरी ट्री के सभी नोड्स का योग प्रिंट करने