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

जांचें कि वर्णों की दोहरी लिंक की गई सूची पैलिंड्रोम है या नहीं C++

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

उदाहरण

#include <iostream>
using namespace std;
class Node {
   public:
   char data;
   Node *next;
   Node *prev;
};
void getNode(Node** start, char new_data) {
   struct Node* newNode = new Node;
   newNode->data = new_data;
   newNode->next = (*start);
   newNode->prev = NULL;
   if ((*start) != NULL)
      (*start)->prev = newNode ;
      (*start) = newNode;
}
bool isPalindrome(Node *left) {
   if (left == NULL)
      return true;
   Node *right = left;
   while (right->next != NULL)
      right = right->next;
   while (left != right && right != left->prev) {
      if (left->data != right->data)
         return false;
      left = left->next;
      right = right->prev;
   }
return true;
}
int main() {
   Node* head = NULL;
   string str = "madam";
   for(int i = 0; i< str.length(); i++){
      getNode(&head, str[i]);
   }
   if (isPalindrome(head))
      cout << "This is Palindrome";
   else
      cout << "This is Not a Palindrome";
}

आउटपुट

This is Palindrome

  1. यह जांचने के लिए प्रोग्राम कि कोई ऐरे पालिंड्रोम है या C++ में STL का उपयोग नहीं कर रहा है

    एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है। सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर,

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

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

  1. सी ++ में डबल लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

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