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

C++ प्रोग्राम सिंगल लिंक्ड लिस्ट को लागू करने के लिए

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

सिंगल लिंक्ड लिस्ट को लागू करने का कार्यक्रम इस प्रकार दिया गया है।

उदाहरण

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}
void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}
int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}

आउटपुट

The linked list is: 9 2 7 1 3

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

struct Node {
   int data;
   struct Node *next;
};

फ़ंक्शन सम्मिलित करें () लिंक की गई सूची की शुरुआत में डेटा सम्मिलित करता है। यह एक new_node बनाता है और new_node के डेटा फ़ील्ड में नंबर सम्मिलित करता है। फिर new_node सिर की ओर इशारा करता है। अंत में हेड न्यू_नोड है यानी लिंक्ड लिस्ट वहीं से शुरू होती है। यह नीचे दिया गया है।

void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}

फ़ंक्शन डिस्प्ले () पूरी लिंक की गई सूची को प्रदर्शित करता है। पहला पीटीआर सिर की ओर इशारा करता है। फिर इसे लगातार अगले नोड तक भेजा जाता है जब तक कि नोड्स के सभी डेटा मान मुद्रित नहीं हो जाते। यह नीचे दिया गया है।

void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}

फ़ंक्शन मुख्य () में, सम्मिलित () को कॉल करके पहले विभिन्न मूल्यों को लिंक की गई सूची में डाला जाता है। फिर लिंक की गई सूची प्रदर्शित होती है। यह नीचे दिया गया है।

int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}

  1. सी++ में बाइनरी सर्च ट्री को सिंगल लिंक्ड लिस्ट में बदलने का प्रोग्राम?

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसे एक सिंगल लिंक्ड लिस्ट (जगह में) में बदलना होगा। तो, अगर इनपुट पसंद है तो आउटपुट होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: सेवा पिछला:=शून्य एक पुनरावर्ती फ़ंक्शन हल () को परिभाषित करें, जो इनपुट के रूप में रूट लेगा। यदि रूट श

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

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

  1. सी++ प्रोग्राम एडजेंसी लिस्ट को लागू करने के लिए

    एक ग्राफ की आसन्न सूची प्रतिनिधित्व लिंक्ड सूची प्रतिनिधित्व है। इस निरूपण में हमारे पास सूचियों की एक सरणी है सरणी का आकार V है। यहाँ V शीर्षों की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास विभिन्न सूचियों के V नंबर को संग्रहीत करने के लिए एक सरणी है। यदि कोई सूची शीर्षलेख u वर्टेक्स