如何(或应该)在链接列表中使用指针

How can I (or should I) use pointers in my linked list

本文关键字:列表 指针 链接 如何      更新时间:2023-10-16

我正在创建一个链表程序,目前我有这样的方法将项目插入列表的前面:

template <class T>
void LinkedList<T>::insert(T *o)
{
    node newNode;
    newNode.o = o;
    newNode.next = first;
    newNode.prev = NULL;
    first->prev = &newNode;
    first = &newNode;
}

其中我有一个结构如下:

struct node {
node   *next;
node   *prev;
T      *o;
};

我认为我的逻辑是正确的插入方法;然而,我觉得我做得不好,特别是在处理指针时。我觉得好像有很多新节点。行,我可以做得更好。有什么建议吗?

注意:我是C++的新手,所以请友善一点。我知道这是一个简单的问题

newNodeinsert()的本地方法,当该方法返回时将被销毁,这意味着first->prevfirst将指向不再存在的node

使用new:

template <class T>
void LinkedList<T>::insert(T *o)
{
    node* newNode = new node;
    newNode->o = o;
    newNode->next = first;
    newNode->prev = NULL;
    first->prev = newNode;
    first = newNode;
}