gpt4 book ai didi

c++ - 链表的指针

转载 作者:行者123 更新时间:2023-11-30 01:57:05 37 4
gpt4 key购买 nike

假设我正在实现一个链表项目,并且我构造了一个节点:

    struct node{

node *prev;
node *next;
int data
};
node *sentinel;

每次我使用 add() 方法时,它都会不断在列表中添加元素,例如:

add(1);  //First node
add(2); //Second node
add(3); //Third node
add(4); //Fourth node
add(5); //Fifth node;

所以在我完成添加之后,我想做一个测试让我们说:

node *temp = sentinel->next;

那么temp是不是指向第一个元素呢?如果我这样做怎么办:

node *temp = (sentinel->next)-next;

现在temp指向第二个元素了吗?

如果是,为什么?

的主要目的是什么
node *sentinel; 

我刚开始自学 C++。非常感谢你们的回答。

   Edit:

我将有一个构造函数将哨兵初始化为:sentinel = new node();

我会说我的 add() 方法是这样的;

add(int data, index)

{

 sentinel *temp = (sentinel->head); //Lets say temp points to the head of list here.
node *toAdd = new node();
toAdd->data = data;
toAdd->next -> temp;
temp->next = toAdd;

最佳答案

sentinel *temp =(sentinel->head);我认为这条线不正确。因为你没有在结构中初始化头部。所以你只需初始化 sateniel=null;

toAdd->data=data
\\then add
if(sateniel==null)
{
sateniel=toAdd;
sateniel->prev=null;
node *temp=sateniel;
}
else
{
toAdd->prev -> temp;
temp->next = toAdd;
temp=toAdd;
}

然后尝试遍历列表

关于c++ - 链表的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129729/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com