Python
 Computer >> コンピューター >  >> プログラミング >> Python

循環リンクリストの最後に新しいノードを挿入するPythonプログラム


循環リンクリストの最後に新しいノードを挿入する必要がある場合は、「Node」クラスを作成する必要があります。このクラスには、ノードに存在するデータと、リンクリストの次のノードへのアクセスという2つの属性があります。

循環リンクリストでは、ヘッドとリアが互いに隣接しています。それらは円を形成するように接続されており、最後のノードに「NULL」値はありません。

初期化関数を持つ別のクラスを作成する必要があり、ノードのヘッドは「なし」に初期化されます。

リンクリストの最後にノードを追加し、ノード値を出力するために、ユーザーは複数のメソッドを定義します。

以下は同じのデモンストレーションです-

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_end(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:  
         self.tail.next = new_node
         self.tail = 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("Nodes are being added to end of list")
   my_cl.add_at_end(21);  
   my_cl.print_it();  
   my_cl.add_at_end(53);  
   my_cl.print_it();  
   my_cl.add_at_end(76);
   my_cl.print_it();
   

出力

Nodes are being added to end of list
21
21
53
21
53
76

説明

  • 「Node」クラスが作成されます。
  • 必要な属性を持つ別のクラスが作成されます。
  • 「add_at_end」という名前の別のメソッドが定義されています。これは、最後に、つまり「tail」ノードの後に​​、循環リンクリストにデータを追加するために使用されます。
  • 循環リンクリストのノードを表示する「print_it」という名前の別のメソッドが定義されています。
  • 'list_creation'クラスのオブジェクトが作成され、そのオブジェクトでメソッドが呼び出されてデータが追加されます。
  • 'init'メソッドが定義されており、循環リンクリストの最初と最後のノードがNoneになります。
  • 「add_at_end」メソッドが呼び出されます。
  • リンクリストの末尾を取得し、その後に要素を追加して、そのアドレスをヘッドポインタと前のポインタに参照します。
  • これは、「print_it」メソッドを使用してコンソールに表示されます。

  1. Cプログラムのリンクリストの最後からn番目のノードのプログラム

    n個のノードがある場合、タスクはリンクリストの最後からn番目のノードを印刷することです。プログラムは、リスト内のノードの順序を変更してはなりません。代わりに、リンクリストの最後からn番目のノードのみを出力する必要があります。 例 Input -: 10 20 30 40 50 60    N=3 Output -: 40 上記の例では、最初のノードからカウントnノードまでのノードがトラバースされます(10、20、30、40、50、60)。したがって、最後から3番目のノードは40です。 リスト全体をトラバースする代わりに、この効率的なアプローチに従うことができます-

  2. 循環リンクリスト内の要素を検索するPythonプログラム

    循環リンクリストで要素を検索する必要がある場合は、「ノード」クラスを作成する必要があります。このクラスには、ノードに存在するデータと、リンクリストの次のノードへのアクセスという2つの属性があります。 循環リンクリストでは、ヘッドとリアが互いに隣接しています。それらは円を形成するように接続されており、最後のノードに「NULL」値はありません。初期化関数を持つ別のクラスを作成する必要があり、ノードのヘッドは「なし」に初期化されます。 リンクリストにノードを追加したり、リンクリストで特定のノードを検索したり、ノード値を出力したりするために、ユーザーは複数のメソッドを定義します。 以下は同じのデ