কম্পিউটার টিউটোরিয়াল

সার্কুলার লিংকড লিস্টের শুরুতে নতুন নোড ইনসার্ট করার পাইথন প্রোগ্রাম

সার্কুলার লিংকড লিস্টের শুরুতে নতুন নোড ইনসার্ট করতে হলে একটি 'Node' ক্লাস তৈরি করতে হয়। এই ক্লাসে দুটি অ্যাট্রিবিউট থাকে: নোডে থাকা ডেটা এবং লিংকড লিস্টের পরবর্তী নোডে অ্যাক্সেস।

সার্কুলার লিংকড লিস্টে হেড এবং রিয়ার একে অপরকে স্পর্শ করে। তারা একটি সার্কেল গঠন করে, এবং লাস্ট নোডে 'NULL' ভ্যালু থাকে না।

একটি আরো ক্লাস তৈরি করতে হয় যাতে একটি ইনিশিয়ালাইজেশন ফাংশন থাকে, এবং নোডের হেড 'None'-এ ইনিশিয়ালাইজ করা হয়।

লিংকড লিস্টের শুরুতে নোড যোগ করা এবং নোড ভ্যালু প্রিন্ট করার জন্য ইউজার-ডিফাইন্ড মাল্টিপল মেথড সংজ্ঞায়িত করা হয়।

নিচে ডেমোстран্স্ট্রেশন দেওয়া হলো:

উদাহরণ

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class list_creation:
    def __init__(self):
        self.head = Node(None)
        self.tail = Node(None)
        self.head.next = self.tail
        self.tail.next = self.head

    def add_at_beginning(self, my_data):
        new_node = Node(my_data)
        if self.head.data is None:
            self.head = new_node
            self.tail = new_node
            new_node.next = self.head
        else:
            temp = self.head
            new_node.next = temp
            self.head = new_node
            self.tail.next = self.head

    def print_it(self):
        curr = self.head
        if self.head is None:
            print("The list is empty")
            return
        else:
            print(curr.data)
            while curr.next != self.head:
                curr = curr.next
                print(curr.data)
            print("\n")

class circular_linked_list:
    my_cl = list_creation()
    print("Values are being added to the list")
    my_cl.add_at_beginning(21)
    my_cl.print_it()
    my_cl.add_at_beginning(53)
    my_cl.print_it()
    my_cl.add_at_beginning(76)
    my_cl.print_it()

আউটপুট

Values are being added to the list
21
53 21
76 53 21

ব্যাখ্যা

  • 'Node' ক্লাস তৈরি করা হয়েছে।
  • প্রয়োজনীয় অ্যাট্রিবিউটসহ আরেকটি ক্লাস তৈরি করা হয়েছে।
  • 'add_at_beginning' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টের শুরুতে, অর্থাৎ 'head' নোডের আগে ডেটা যোগ করতে ব্যবহৃত হয়।
  • 'print_it' নামে একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টের নোডগুলো ডিসপ্লে করে।
  • 'list_creation' ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে, এবং ডেটা যোগ করতে মেথডগুলো কল করা হয়েছে।
  • একটি 'init' মেথড সংজ্ঞায়িত করা হয়েছে, যা সার্কুলার লিংকড লিস্টের প্রথম এবং লাস্ট নোডকে None সেট করে।
  • 'add_at_beginning' মেথডটি কল করা হয়েছে।
  • এটি লিংকড লিস্টের হেড পায়, এর আগে একটি এলিমেন্ট যোগ করে, এবং এর অ্যাড্রেস টেল পয়েন্টার এবং নেক্সট পয়েন্টারকে রেফারেন্স করে।
  • 'print_it' মেথড ব্যবহার করে কনসোলে এটি ডিসপ্লে করা হয়।
  1. পাইথন প্রোগ্রাম: ডাবলি লিংকড লিস্টের শেষ থেকে নোড ডিলিট করা

  2. পাইথন প্রোগ্রাম: ডাবলি লিংকড লিস্টের শুরু থেকে নোড ডিলিট করা

  3. পাইথন প্রোগ্রাম: সার্কুলার লিংকড লিস্টের উপাদানগুলো সর্ট করা

  4. পাইথনে সার্কুলার লিঙ্কড লিস্টে একটি এলিমেন্ট খুঁজে বের করার প্রোগ্রাম