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

एक लिंक्डलिस्ट में लूप का पता लगाने के लिए जावा प्रोग्राम

इस लेख में, हम समझेंगे कि LinkedList में लूप का पता कैसे लगाया जाता है। एक लिंक्ड सूची डेटा संरचनाओं का अनुक्रम है, जो लिंक के माध्यम से एक साथ जुड़े हुए हैं। लिंक्ड लिस्ट लिंक्स का एक क्रम है जिसमें आइटम होते हैं। प्रत्येक लिंक में दूसरे लिंक से कनेक्शन होता है।

नीचे उसी का एक प्रदर्शन है -

मान लीजिए कि हमारा इनपुट है -

Run the program

वांछित आउटपुट होगा -

The loop exists in the linked list

एल्गोरिदम

Step 1 - START
Step 2 - Declare namely
Step 3 - Define the values.
Step 4 - Define the class with the relevant members.
Step 5 - Create an instance of the class, and initialize the nodes.
Step 6 - Define functions to check if it is a loop.
Step 7 - For this, create a HashSet, and add elements to the topmost node.
Step 8 - Point the node to the next element after every iteration.
Step 9 - In the main method, create an instance and add elements to the list using the ‘push’ method.
Step 10 - Call the ‘check_loop’ method, and display the relevant message on the console.
Step 11 - Stop

उदाहरण 1

यहां, हम लूप को खोजने के लिए ट्रैवर्सल विधि का उपयोग करते हैं।

import java.util.*;
public class Demo {
   static Node head;
   static class Node {
      int data;
      Node next;
      Node(int d){
         data = d;
         next = null;
      }
   }
   static public void push(int new_data){
      Node new_node = new Node(new_data);
      new_node.next = head;
      head = new_node;
   }
   static boolean check_loop(Node head){
      HashSet<Node> s = new HashSet<Node>();
      while (head != null) {
         if (s.contains(head))
            return true;
         s.add(head);
         head = head.next;
      }
      return false;
   }
   public static void main(String[] args){
      System.out.println("The required packages have been imported");
      Demo input_list = new Demo();
      input_list.push(45);
      input_list.push(60);
      input_list.push(75);
      input_list.push(90);
      input_list.head.next.next.next.next = input_list.head;
      if (check_loop(head))
         System.out.println("The loop exists in the linked list");
      else
         System.out.println("The loop doesnot exists in the linked list");
      }
   }

आउटपुट

The required packages have been imported
The loop exists in the linked list

उदाहरण 2

यहां, हम ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग को प्रदर्शित करने वाले कार्यों में संचालन को समाहित करते हैं।

public class Demo {
Node head;
static class Node {
int value;
Node next;
Node(int d) {
value = d;
next = null;
}
}
public boolean check_loop() {
Node first_node = head;
Node second_node = head;
while(first_node != null && first_node.next !=null) {
first_node = first_node.next.next;
second_node = second_node.next;
if(first_node == second_node) {
return true;
}
}
return false;
}
public static void main(String[] args) {
Demo input_list = new Demo();
input_list.head = new Node(45);
Node second_node = new Node(60);
Node third_node = new Node(75);
Node fourth_node = new Node(90);
input_list.head.next = second_node;
second_node.next = third_node;
third_node.next = fourth_node;
fourth_node.next = second_node;
System.out.print("The elements of the linked list are: ");
int i = 1;
while (i <= 4) {
System.out.print(input_list.head.value + " ");
input_list.head = input_list.head.next;
i++;
}
boolean loop = input_list.check_loop();
if(loop) {
System.out.println("\nThere is a loop in the linked list.");
}
else {
System.out.println("\nThere is no loop in the linked list.");
}
}
}

आउटपुट

The required packages have been imported
The loop exists in the linked list

  1. जावा प्रोग्राम वर्ग का क्षेत्रफल ज्ञात करने के लिए

    इस लेख में हम समझेंगे कि एक वर्ग का क्षेत्रफल कैसे ज्ञात किया जाता है। एक वर्ग के क्षेत्रफल की गणना निम्न सूत्र का उपयोग करके की जाती है - side*sidei.e.s2 नीचे उसी का एक प्रदर्शन है - यदि किसी वर्ग की भुजा s है, तो वर्ग का क्षेत्रफल s2 द्वारा दिया जाता है - इनपुट मान लीजिए हमारा इनपुट है - प

  1. जावा प्रोग्राम लूप का उपयोग करके अक्षर (ए से जेड) प्रदर्शित करने के लिए

    इस लेख में, हम समझेंगे कि जावा में ए से जेड या ए से जेड तक के अक्षरों को कैसे प्रिंट किया जाए। यह एक साधारण फॉर-लूप का उपयोग करके पूरा किया जाता है। नीचे उसी का एक प्रदर्शन है - इनपुट मान लीजिए हमारा इनपुट है - A to Z आउटपुट वांछित आउटपुट होगा - A B C D E F G H I J K L M N O P Q R S T U V W X

  1. जावा प्रोग्राम पैलिंड्रोम की जांच करने के लिए

    पैलिंड्रोम संख्या एक संख्या है जो उलटने पर वही रहती है, उदाहरण के लिए, 121, 313, 525, आदि। उदाहरण आइए अब पैलिंड्रोम की जांच के लिए एक उदाहरण देखें - public class Palindrome {    public static void main(String[] args) {       int a = 525, revVal = 0, remainder, val;   &