当前位置: 首页 > 知识库问答 >
问题:

使用一个类的链表程序

黄昊英
2023-03-14

是否可以在类节点中编写这个单链表程序,并在其中使用类LinkedList的所有方法,通过消除类LinkedList而只使用一个类来实现所有这些?如果可能的话,为什么我们喜欢这样写,为什么不使用一个类呢?有人说我们用它来跟踪头节点,但我不明白。我们可以简单地使用一个名为变量的head来存储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

共有1个答案

公冶智刚
2023-03-14

有很多方法可以实现与这个LinkedList类相同的接口。

其中一种方法是给LinkedList数据Next字段,其中Next指向一个链表...但为什么你觉得这样更好呢?示例中的node类仅在LinkedList中使用。它完全没有外部目的。这个LinkedList类的作者创建了两个类,这样他就可以将应用于节点的操作和应用于整个列表的操作分开,因为他喜欢这样思考。你认为你的方式是好是坏是一个选择的问题...

但是这里有一个真正的原因,为什么把LinkedList与节点分开更好:

 类似资料:
  • 在Android中,假设我们有两个类,它们具有启动服务的常用方法,因此我们将它们提取到helper类中: 下图显示了我对表示它的奇怪尝试。我使用了交易窄。我认为这些是活动图,但在uml图中。组织/类别参考。html,这些狭义称为关联可导航性。这就是为什么我用它们来表示图表。在HelperClass和ClassService之间,我使用了正常的关联。在类和服务之间,我使用了一个限制(为了更清楚,它只

  • 我有一个如下所示的MainWindowFx类。它基本上创建了一个简单的GUI。 现在我想在另一个类中使用此对象的实例: 但是当我运行这个时,我遇到了这个错误: 我对此做了一些搜索,并猜测它与线程有关。。。但我还是不知道。有什么建议吗?

  • 我是一名Java程序员初学者。我试图在类交通中访问类车中的两个列表,这样我就可以执行while循环,循环直到主类中的列表为空 这就是我现在掌握的代码,我试着从普通车上扩展流量,但没有成功,我被卡住了。我该怎么解决这个问题?

  • 问题内容: 我无法将表格行设置为指向某些内容的链接。我只能使用CSS和HTML。我尝试了从div到另一行的不同方法,但仍然无法使它起作用。 问题答案: 您有两种方法可以做到这一点: 使用javascript: 使用锚点: 我使用以下方法进行了第二项工作: 摆脱列之间的空白:

  • 我正在用C语言创建一个单链表,它有头部和尾部指针,其中头部指针指向SLL的起始节点,尾部指针指向SLL的最后一个节点。我不想使用head指针遍历到列表末尾来删除节点。有没有办法让我可以使用尾指针删除SLL的最后一个元素? 下面是节点添加函数。头部和尾部初始化为NULL。 要删除第一个节点,使用以下函数:

  • 我想创建两个链接的表。我的问题是这个设计工作和我的加入声明工作。 表#1宴会厅id(PK),姓名,地点等