实现双向链表删除一个节点P,在节点P后插入一个节点
2009-02-15 03:23
633 查看
双向链表删除一个节点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;
}
}
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;
}
}
相关文章推荐
- 设计一个整型链表类list,能够实现链表节点的插入、删除、以及链表数据的输出操作。
- 建立一个带附加头结点的单链表.实现测长/打印/删除结点/插入结点/逆置/查找中间节点/查找倒数第k个节点/判断是否有环
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- 利用模板类编写一个程序,实现双向链表的插入、删除、查找、显示的功能。
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- 一个用Java实现的双向队列,可以分别在头尾插入和删除节点
- [原]C语言实现双向链表删除节点、插入节点、双向输出等操作
- 【数据结构】C语言实现链表节点的插入和删除
- 数据结构——10 双向链表插入和删除节点
- 双向循环链表的建立,插入,删除(带头节点)
- 实现一个 链表 有序插入新节点
- 笔试题 实现双向链表的插入和删除
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 【数据结构】C语言实现链表节点的插入和删除
- 数据结构和算法设计专题之---单链表中在指定的节点前面插入以及删除一个节点
- 双向链表 删除节点 插入节点
- java建立双向链表,插入结点,删除节点
- C语言实现链表节点的插入和删除
- 双向链表实现 插入删除