如何添加到双向链表的第一个?

时间:2016-05-19 07:26:30

标签: c++ doubly-linked-list

我正在尝试用c ++创建一个带有类的双向链表,但是我有一个烦人的问题就是将节点添加到列表的第一个!
这是public class WebUtils { public static void Click(WebDriver driver, By by) { WebElement Element = driver.findElement(by); Element.click(); } } 类:

Node

};

以下是我创建第一个节点的方法:

class node{
public:
    node(int d = 0, node *p = NULL, node *n = NULL):data(d), pre(p), next(n){}

    void setPrevious(node *p){this->pre = p;}
    void setNext(node *n){this->next = n;}
    void setData(int d){this->data = d;}

    int data;
    node *pre, *next;

这就是我尝试将节点添加到列表的第一个的方式:

node *head = new node(), *current = new node(), *last = new node();
cout<<msg_data;
// 'd' is an Integer variable
cin>>d;
current->setData(d);
head = new node(0, 0, current);

当我想首先添加节点时,添加一个&#39; 0&#39;对于数据&#39;超值之后!恩。我想添加&#39; 21&#39;到列表的第一个,但它在列表中添加了21和0!

1 个答案:

答案 0 :(得分:1)

两个观察结果:

查看创建第一个节点的代码,它创建的节点不是一个节点,而是四个节点。看来你完全误解了一些东西。在纸上画出列表的外观,你会弄清楚。

您在代码中添加额外节点的代码似乎没问题。