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

C++ में लिंक्ड लिस्ट जंप्स (Linked List Jumps)


सिंगली लिंक्ड लिस्ट दी गई है जिसमें धनात्मक संख्याएं हैं। प्रत्येक नोड का next पॉइंटर उसके मान के बराबर आगे के नोड को इंगित करे। यदि ऐसा नोड नहीं है तो null।

उदाहरण: [2,2,3,5,9,15,3,4] → इंडेक्स 0 (मान 2) → इंडेक्स 2 (मान 3) → इंडेक्स 5 (मान 15) → आउटपुट [2, 3, 15]।

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

class ListNode {
public:
    int val;
    ListNode *next;
    ListNode(int data) { val = data; next = NULL; }
};

ListNode* make_list(vector v) {
    ListNode* head = new ListNode(v[0]);
    for (int i = 1; i < v.size(); i++) {
        ListNode* ptr = head;
        while (ptr->next != NULL) ptr = ptr->next;
        ptr->next = new ListNode(v[i]);
    }
    return head;
}

void print_list(ListNode* head) {
    ListNode* ptr = head;
    cout << "[";
    while (ptr) { cout << ptr->val << ", "; ptr = ptr->next; }
    cout << "]" << endl;
}

class Solution {
public:
    ListNode* solve(ListNode* node) {
        vector v;
        while (node) { v.push_back(node->val); node = node->next; }
        ListNode* ret = new ListNode(0);
        ListNode* temp = ret;
        int i = 0;
        while (i < v.size()) {
            temp->next = new ListNode(v[i]);
            temp = temp->next;
            i += v[i];
        }
        return ret->next;
    }
};

int main() {
    Solution ob;
    vector v = {2,2,3,5,9,15,3,4};
    ListNode* head = make_list(v);
    print_list(ob.solve(head));
    return 0;
}

इनपुट

{2,2,3,5,9,15,3,4}

आउटपुट

[2, 3, 15, ]
  1. C++ में लिंक्ड सूची को समतल करना C++ में लिंक्ड सूची को समतल करना

    इस समस्या में, हमें दो पॉइंटर नोड्स, राइट और डाउन से युक्त एक लिंक्ड सूची दी गई है। राइट नोड मुख्य लिंक्ड सूची पॉइंटर है। डाउन नोड उस नोड से शुरू होने वाली द्वितीयक लिंक्ड सूची के लिए है। सभी लिंक्ड सूचियाँ सॉर्टेड हैं। हमारा कार्य एक प्रोग्राम बनाना है जो लिंक्ड सूची को समतल करे और परिणामी सूची स

  1. C++ में मल्टीलेवल लिंक्ड सूची को समतल करना C++ में मल्टीलेवल लिंक्ड सूची को समतल करना

    इस समस्या में, हमें एक मल्टीलेवल लिंक्ड सूची दी गई है। हमारा कार्य मल्टीलेवल लिंक्ड सूची को समतल करने के लिए एक प्रोग्राम बनाना है। समतल करने का ऑपरेशन इस तरह से किया जाता है कि पहले स्तर के नोड्स पहले लिंक्ड सूची में आएंगे और फिर दूसरे स्तर के नोड्स आएंगे। मल्टीलेवल लिंक्ड सूची एक बहुआयामी डेटा संर

  1. C++ में लिंक्ड लिस्ट का उपयोग करके दो बहुपदों को जोड़ना C++ में लिंक्ड लिस्ट का उपयोग करके दो बहुपदों को जोड़ना

    इस अवधारणा को बेहतर ढंग से समझने के लिए, पहले आवश्यक सभी बुनियादी बातों को दोहरा लेते हैं। लिंक्ड लिस्ट एक डेटा संरचना है जो प्रत्येक तत्व को लिस्ट के एक नोड में ऑब्जेक्ट के रूप में संग्रहीत करती है। प्रत्येक नोड में दो भाग होते हैं: डेटा और अगले नोड का लिंक। बहुपद (Polynomial) एक गणितीय अभिव्यक्ति