链表(插入表头)
Linked list(insert at head)
template <class T>
List<T>::~List()
{
ListItem<T> *temp,*temp1;
temp=head;
while (temp->next!=NULL)
{
temp1=temp;
temp=temp->next;
delete [] temp1;
}
}
/* This class just holds a single data item. */
template <class T>
struct ListItem
{
vector<string> words;
T value;
ListItem<T> *next;
ListItem<T> *prev;
ListItem(T theVal)
{
this->value = theVal;
this->next = NULL;
this->prev = NULL;
}
};
template <class T>
void List<T>::insertAtHead(T item)
{
ListItem<T> *node=new ListItem<T>(item);
if (head==NULL)
{
head=node;
}
else
{
node->next=head;
head->prev=node;
head=node;
}
}
int main()
{
List<int> Mylist;
for (int i=20;i>0;--i)
{
Mylist.insertSorted(i);
}
cout<<Mylist.getTail()->value<<endl;
system("PAUSE");
return 0;
}
我正在使用类和模板制作一个链表。当我运行此代码时,它运行良好,但当我按键退出时,会出现以下错误:"main.exe已停止工作"我正在使用Dev c++。我已经添加了析构函数代码。我看不出有任何问题。
您必须始终将new
与delete
以及new[]
与delete[]
配对,但不匹配
ListItem<T> *node=new ListItem<T>(item);
// ^^^
delete [] temp1;
//^^^^^^^
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 错误:SList.cpp:(.text+0x69):尝试将节点插入链表头C++时未定义对"SLNode::SLNode()"的引用
- 链表(插入表头)
- 链表头插入