实现双向链表删除一个节点P,在节点P后插入一个节点

来源:互联网 发布:毛绒玩具设计图纸数据 编辑:程序博客网 时间:2024/04/28 09:01

双向链表删除一个节点P

 

template<class type> void list<type>::delnode(int p)

{

     int k=1;

     listnode<type> *ptr,*t;

     ptr=first;

     while(ptr->next!=NULL&&k!=p)

     {

         ptr=ptr->next;

         k++;

     }

     t=ptr->next;

     cout<<"你已经将数据项"<<t->data<<"删除"<<endl;

 

     ptr->next=ptr->next->next;

     length--;

     delete t;

}

 

在节点P后插入一个节点:

 

template<class type> bool list<type>::insert(type t,int p)

{

     listnode<type> *ptr;

     ptr=first;

     int k=1;

     while(ptr!=NULL&&k<p)

     {

         ptr=ptr->next;

         k++;

     }

     if(ptr==NULL&&k!=p)

         return false;

     else

     {

         listnode<type> *tp;

         tp=new listnode<type>;

         tp->data=t;

         tp->next=ptr->next;

         ptr->next=tp;

         length++;

         return true;

     }

}

 

原创粉丝点击