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

दो डौबली लिंक्ड लिस्ट में सामान्य नोड्स की संख्या खोजें C++ में

मान लीजिए हमारे पास दो डौबली-लिंक्ड लिस्ट हैं। हमें दोनों डौबली लिंक्ड लिस्ट में सामान्य नोड्स की कुल संख्या खोजनी है। तो यदि दो सूचियां [15, 16, 10, 9, 7, 17], और [15, 16, 40, 6, 9] जैसी हैं, तो तीन सामान्य नोड्स हैं।

दोनों सूचियों को अंत तक नेस्टेड लूप का उपयोग करके पार करें, पहली सूची में प्रत्येक नोड के लिए, जांचें कि क्या यह दूसरी सूची के किसी नोड से मेल खाता है या नहीं। यदि मेल मिलता है, तो काउंटर बढ़ाएं, और अंत में काउंट वापस करें।

उदाहरण

#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node *back, *front;
};

void append(Node** start, int new_data) {
    Node* new_node = new Node;
    new_node->data = new_data;
    new_node->back = NULL;
    new_node->front = (*start);
    if ((*start) != NULL)
        (*start)->back = new_node;
    (*start) = new_node;
}

int countCommonNodes(Node** start1, Node** start2) {
    Node* ptr = *start1;
    Node* ptr1 = *start2;
    int count = 0;
    while (ptr != NULL) {
        while (ptr1 != NULL) {
            if (ptr->data == ptr1->data) {
                count++;
                break;
            }
            ptr1 = ptr1->front;
        }
        ptr1 = *start2;
        ptr = ptr->front;
    }
    return count;
}

int main() {
    Node* first = NULL;
    Node* second = NULL;
    append(&first, 15);
    append(&first, 16);
    append(&first, 10);
    append(&first, 9);
    append(&first, 7);
    append(&first, 17);
    append(&second, 15);
    append(&second, 16);
    append(&second, 40);
    append(&second, 6);
    append(&second, 9);
    cout << "Number of common nodes:" << countCommonNodes(&first, &second);
}

आउटपुट

Number of common nodes:3

  1. C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढना

    इस समस्या में, हमें एक डौबली लिंक्ड लिस्ट दी गई है। हमारा कार्य C++ में डौबली लिंक्ड लिस्ट का आकार ढूंढने के लिए एक प्रोग्राम बनाना है। डौबली लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें नेविगेशन दोनों तरीकों से संभव है, आगे और पीछे आसानी से सिंगल लिंक्ड लिस्ट की तुलना में। डौबली लिंक्ड ल

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

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

  1. बाइनरी ट्री के दो नोड्स के बीच की दूरी खोजें C++ में बाइनरी ट्री के दो नोड्स के बीच की दूरी खोजें C++ में

    मान लीजिए हमारे पास कुछ नोड्स के साथ एक बाइनरी ट्री है। हमें दो नोड्स u और v के बीच की दूरी खोजनी है। मान लीजिए ट्री नीचे जैसा है - अब (4, 6) के बीच की दूरी = 4, पथ की लंबाई 4 है, (5, 8) के बीच की लंबाई = 5 आदि। इस समस्या को हल करने के लिए, हम LCA (निम्नतम सामान्य पूर्वज) खोजेंगे, फिर LCA से दो नोड