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

(C)双链接列表模板——访问问题

汝承载
2023-03-14

我对C模板非常陌生。我目前正在做一个项目,我需要使用模板实现双重链接列表。以下是我目前所拥有的:

template<class ItemType>
class SortedList
{
public:
   SortedList();
   ~SortedList();
   bool Insert (ItemType toAdd);
   bool Delete (ItemType toDelete);
   void Print();

private:
   SortedList ( const SortedList & copyFrom );
   SortedList & operator= ( const SortedList & assignFrom );

   struct Node
   {
      Node ( ItemType item, Node * p = NULL, Node * n = NULL )
      { data = item; prev = p; next = n; }
      ItemType data;
      Node * prev, * next;
   };
   Node * list;
};

template<class ItemType>
SortedList<ItemType>::SortedList()
{
   list == NULL;
}

template<class ItemType>
SortedList<ItemType>::~SortedList()
{
   Node * curr = list;
   while ( curr != NULL )
   {
      Node * tempNext = curr->next;
      delete current;
      current = tempNext;
   }
}

然而,在我的析构函数中,为什么我不能访问节点元素?该方法中的代码现在已编译,但不会抛出错误。但是如果我尝试使用-

此外,我如何在函数头中初始化list==NULL,而不是在类之外进行初始化?

共有1个答案

尤茂材
2023-03-14
  1. 不知道为什么会编译,但您正在使用

删除当前代码

而不是:

delete curr;
curr = tempNext;

类SortedList{public: SortedList(): list(nullptr) { }

 类似资料:
  • 我认为我的模板使用不当,但我不知道我做错了什么。这就像模板链表无法确定它需要使用我的术语类一样。 名单- 以下是Visual Studio 2012的确切错误: > 错误LNK1120:1未解决的外部C:\用户\迈克尔\文档\魔术公文包\尚普兰\课程工作\数据结构\pa2\调试\pa2.exe 标题。H 功能。cpp 链接列表。H 术语h

  • 下面是我当前的代码转换单链接到双向链表。我还没有接触删除功能。我已经得到插入在空列表,结束列表,开始列表显然工作。 然而,插入中间的节点似乎无法创建到前一个节点的链接。我插入的调试行似乎显示了n- 代码如下:

  • 我有关于如何修改指针的问题,使用类类型元素的对象的前一个和下一个实例变量。双向链表由具有lastName、firstName、phoneNumber、前一个和下一个实例变量的Element对象填充。RemveElement方法接受lastName作为参数,并找到具有该确切String的元素,然后将其从列表中删除。然而,当修改应该从列表中删除元素的指针时,我遇到了一个异常。具体来说,在这段代码中:

  • 我真的很难修复我的代码。我已经创建了一个双链接列表,我正试图反向遍历它。 有什么想法吗? 这是我的代码:Node。爪哇: 下面是第二个类“DNode.java”: 最后,这里是双链接列表。java:(重写另一个类“链表”中的“添加”和“删除”方法) 公共类双链接列表扩展了链接列表{ 我可以向前打印列表,但向后打印时会遇到无限循环。有什么想法吗? 谢谢

  • 我已经得到了实现双向链表的框架。我被PushFront()方法难住了。方法应该将提供的元素添加到链表的前面,并且应该将地址返回到新的头节点。我对如何访问列表的当前头部感到困惑,以便我可以将其分配给pNext指针。到目前为止,PushTop()方法看起来是这样的: 元素类构造函数: 数据类: 主要: 我的理解是,您通常会在调用PushFron()时提供头的地址,但是因为我没有提供,我不确定如何访问它

  • 我是C语言的新手。我正在尝试创建一个双链接列表,其中数据字段是一个结构。但是当我输出元素时,只有结构的第一个字段正确显示。 所以,我有几个问题。我是否正确声明了节点值字段?我是否正确地插入了列表末尾的节点?双向链表项的输出正确吗?我的错误在哪里,如何纠正?