new ,delete 疑问
//为什么使用delete 出现错误?template <typename T> void Linklist<T>::Insert(int i,T x) { if(i<0||i>length+1) //抛出异常 throw Overflow(); if(length==0)//由于第一个节点不同于其它节点的插入 {//可以直接把 pt节点连接在first(头接点)的后面 Node<T> *pt=new Node<T>; pt->data=x; first->next=pt; pt->next=NULL;//最后pt要指向空 // delete pt; //为什么收回空间会出现错误? } else { Node<T> *p=first; for(int j=0;j<i-1&&p;j++) p=p->next;//找到要插入的位置 Node<T> * newdata=new Node<T>; newdata->data=x;//一般插入节点 newdata->next=p->next; p->next=newdata;// delete newdata;//出现错误 } length++; } template <typename T> void Linklist<T>::Delete(int i) { if(i<0||i>length)//抛出异常 throw Overflow(); else { Node<T> *p=first->next; for(int j=0;j<i-2;j++) p=p->next;//找到要删除节点位置之前的节点 Node<T> *q=new Node<T>; q=p->next;//删除节点 p->next=q->next; delete q;//为什么这没有出现错误呢? } length--; }