注意
- 链表中要包含Node的结构体,用来把节点放进去
- 只有出现Node就要加<T> ,不然会报错
- 有类模板的重新编译记得清空再重新生成
- 清除链表时使用的循环清空头结点的思想需要记得(C语言中一样循环调用清除0号元素也可以)
- Debug和Release编译不同,一步一步执行时顺序不一样,不知道为啥了,不过不重要,结果一样
自己写的清空函数
template <typename T>
void Link<T>::clear()
{
//先把原来的内存都删除掉
Node<T>* tmp = NULL;
tmp = head;
while (head->next != NULL)
{
del(0);
}
}
原本的清除函数
template <typename T>
void Link<T>::clear()
{
//先把原来的内存都删除掉
Node<T>* tmp = NULL;
tmp = head;
while (head != NULL)
{
tmp = head->next;//临时缓存后面的变量
delete head;//释放当前变量
head = tmp;//指向后面的变量
}
//创建新的头结点
head = new Node<T>;
head->next = NULL;
len = 0;
}
需要增加的新节点(与线性表不同的地方)
template <typename T>
struct Node
{
T t;
Node<T>* next;//注意这里的node也要加上<T>
};
头文件
template

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



