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

双链表:在前面添加一个节点。来自geeksforgeeks(java代码)

黎震博
2023-03-14

//类用于双链表公共类DLL{节点head;//列表head

/* Doubly Linked list Node*/
class Node { 
    int data; 
    Node prev; 
    Node next; 

    // Constructor to create a new node 
    // next and prev is by default initialized as null 
    Node(int d) { data = d; } 
} 
// Adding a node at the front of the list 
public void push(int new_data) 
{ 
/* 1. allocate node  
* 2. put in the data */
    Node new_Node = new Node(new_data); 

/* 3. Make next of new node as head and previous as NULL */
new_Node.next = head; 
new_Node.prev = null; 

/* 4. change prev of head node to new node */
    if (head != null) 
        head.prev = new_Node; 

/* 5. move the head to point to the new node */
    head = new_Node; 
} 

}

共有1个答案

羊舌阎宝
2023-03-14

需要第4步将旧磁头的prev连接到新磁头。

这是步骤3之后的情况:

然后,在第4步之后,将旧头部(为null)的prev设置为指向新头部:

 类似资料:
  • 我正在尝试编写一个名为addStart()的函数,以在列表字符串的第一个节点的前面添加新元素。请帮我弄清楚。 我有两个班级,分别名为Waypoint和TourElement班级。航路点提供了使用点的方法。巡更元素包含许多点。 //航路点.java //旅游Element.java //我需要addStart函数//的帮助,它在第一个元素前面添加了way point。如果参数为null,则返回unc

  • 我在Java中实现一个双链接列表时遇到了一个问题。特别是要交换2个以下节点(在我的例子中,一个节点包含一个政治候选人)。 假设下面的DLL: head- 作为输出,我没有从头到尾的正确DLL,但从头到尾都很好: 我已经写了几个版本的这个方法reverseTwoNode。我甚至尝试在节点内部交换数据,而不是交换节点,我也有同样的问题。你能帮我真是太好了,我花了这么多时间在这个简单的功能上,我看不出有

  • 我正在尝试编写一个函数,它接受一个项目并将其插入双向链表的前端。双向链表有两个虚拟节点,两端各一个。我迄今为止编写的方法在迭代列表并打印时只返回两个虚拟节点。我无法弄清楚我的代码有什么问题。 当我运行main时,我得到的只是: 然而,我预计: 有谁能告诉我如何修复代码,以便在双链接列表的开头添加一个项目,在两个虚拟的第一个和最后一个节点之间?

  • 我在课堂上有一个关于Java的作业。它是关于雇员的,所以有三个类,雇员,雇员列表和节点。我需要用这个做一个双链接列表。链表是我们定制的类,而不是Java提供的类。 现在我被困在添加(雇员)方法中。该方法输入参数一个雇员对象,并被要求添加到列表的末尾。 这是密码 简单地说,当列表为空时,该方法会将员工完美地添加到节点中,即使我将第二个员工添加到列表中,也没有问题;但当我再添加,并尝试检索它时,我最终

  • 类MyList的公共方法TwoTogethere()返回True,当且仅当list有两个相等的相邻元素。您可以假定没有列表元素(数据)为空。以下是一些示例:当调用此方法时,列表[a,b,c,d]将返回false。而是一个清单[a、b、b、c]或[a、b、c、d、e、f、f]。方法返回true。编写public方法。您可以使用列表接口引用(字段:data、prev、next)(head、tail)(