2017-02-12 39 views
2

我創建了一個類節點創建一個節點,並且類單個列表將創建一個鏈接列表。
在類的單個列表中,我創建了附加方法來向鏈接列表添加新節點。
我將如何創建一個方法來在屏幕上打印鏈接列表,以顯示節點的數據以及它指向的位置。如何創建一個方法來顯示帶有數據的鏈接列表和指向屏幕上下一個節點的指針?

這裏是我的鏈表代碼:

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

class singlelist: 
    head = None 
    tail = None 

    def append(self , data): 
     node = Node(data , None) 
     if self.head is None: 
      self.head=self.tail=node 
     else: 
      self.tail.next=node 
     self.tail=node 
+1

你幾乎肯定不想讓'頭部'和'尾巴'級別的變量。 –

+0

我同意。定義一個'__init __(self)'方法並在那裏聲明'self.head = None'和'self.tail = None'。 – JGut

+0

好的謝謝你,我明白了! – secureamd2

回答

4

你可以簡單地做這樣的:如果你要打印的對象

def show(self): 
    cur_node = self.head   #cur_node is your current node 
    while cur_node is not None: 
     print(cur_node.data , "-> " , end = "") 
     cur_node = cur_node.next 
    print(None) 
+0

爲什麼你在print語句中使用了'end =「」'? – secureamd2

+0

@ secureamd2在每個輸出的結尾添加一個空字符串,而不是換行符。它只是確保整個列表的輸出全部在一行上,而不是每個節點都在自己的行上打印。 –

1


創建類表演方法一個使用print函數的類,你可以在你的類中定義一個叫做__str__(self)的方法。

對於這個特殊的鏈表,我會做這樣的事:

def __str__(self): 
    return_str = "" 
    iterator = self.head 
    while iterator != None: 
     return_str += iterator.data + ", " 
     iterator = iterator.next 
    return return_str 

然後,你可以只打印singleList對象是這樣的:

myList = singleList() 
print(myList) 
相關問題