【发布时间】:2020-09-19 21:23:39
【问题描述】:
是否可以在类 Node 中编写这个单链表程序,并通过消除类 LinkedList 并只使用一个类来使用其中的类 LinkedList 的所有方法?如果有可能,那么为什么我们更喜欢这样写,为什么不使用单个类呢? 有人说我们用它来跟踪头节点,但我不明白。我们可以简单地使用一个名为 head 的变量来存储头节点,然后在其他操作中进一步使用它。那么为什么头节点的类不同。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def push(self, new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
def deleteNode(self, key):
temp = self.head
if (temp is not None):
if (temp.data == key):
self.head = temp.next
temp = None
return
while(temp is not None):
if temp.data == key:
break
prev = temp
temp = temp.next
if(temp == None):
return
prev.next = temp.next
temp = None
def printList(self):
temp = self.head
while(temp):
print (" %d" %(temp.data)),
temp = temp.next
【问题讨论】:
-
是的,这是可能的。想必人们会更清楚地区分链表和链表中的节点。
-
你的方法。我有一个链表,我将它传递给一个函数。该函数删除第一个元素,然后返回。调用者现在挂在断开连接的元素上,而不是链表本身。将对象本身(链表)与作为对象实现的一部分的事物分开是一种更简洁的设计。
-
同样,在你的方案中,什么是空链表?没有任何?如何调用它的方法?
标签: python oop data-structures linked-list