কম্পিউটার

C++ এ একক ট্রাভার্সালে লিঙ্ক করা তালিকার দ্বিতীয় শেষ নোডটি খুঁজুন


এখন আমরা দেখব কিভাবে লিঙ্ক করা তালিকার দ্বিতীয় শেষ উপাদানটি পেতে হয়। ধরুন কিছু উপাদান আছে যেমন [10, 52, 41, 32, 69, 58, 41], দ্বিতীয় শেষ উপাদান হল 58।

এই সমস্যাটি সমাধান করার জন্য, আমরা দুটি পয়েন্টার ব্যবহার করব একটি বর্তমান নোডের দিকে নির্দেশ করবে, এবং অন্যটি বর্তমান অবস্থানের পূর্ববর্তী নোডকে নির্দেশ করবে, তারপরে কারেন্টের পরবর্তীটি শূন্য না হওয়া পর্যন্ত আমরা সরব, তারপর কেবল পূর্ববর্তী নোডটি ফিরিয়ে দেব। পি>

উদাহরণ

#include<iostream>
using namespace std;
class Node {
   public:
      int data;
      Node *next;
};
void prepend(Node** start, int new_data) {
   Node* new_node = new Node;
   new_node->data = new_data;
   new_node->next = NULL;
   if ((*start) != NULL){
      new_node->next = (*start);
      *start = new_node;
   }
   (*start) = new_node;
}
int secondLastElement(Node *start) {
   Node *curr = start, *prev = NULL;
   while(curr->next != NULL){
      prev = curr;
      curr = curr->next;
   }
   return prev->data;
}
int main() {
   Node* start = NULL;
   prepend(&start, 15);
   prepend(&start, 20);
   prepend(&start, 10);
   prepend(&start, 9);
   prepend(&start, 7);
   prepend(&start, 17);
   cout << "Second last element is: " << secondLastElement(start);
}

আউটপুট

Second last element is: 20

  1. C++ এ বহুস্তরের লিঙ্কযুক্ত তালিকা সমতল করুন

  2. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকায় বৃহত্তম নোড খুঁজুন

  3. C++ এ একটি ট্রিতে প্রদত্ত সাবট্রির DFS ট্রাভার্সালে Kth নোড খুঁজুন

  4. C++ এ ইনঅর্ডার ট্রাভার্সালের n-ম নোড খুঁজুন