如题:
在顺序表中增加一个成员函数dele1(char & x),将顺序表中的指定元素 x (假定线性表中无重复元素)删除,试编写该函数完成其功能.
是用C++语言编写的。谢谢啦...
如题:
在顺序表中增加一个成员函数dele1(char & x),将顺序表中的指定元素 x (假定线性表中无重复元素)删除,试编写该函数完成其功能.
是用C++语言编写的。谢谢啦...
大概写了下. 有问题还请追问.
ElemType dele1(char & x)
{
NodeType *p,*q;
bool y=true;
p=Head; //p指向头节点
q=p->next; //q指向下一个节点.
while(q!=NULL && q->data!=x) //利用while循环找到链表中值为x的节点.
{
p=q; //p用于存储该节点的上一节点.
q=q->next;
} //while循环结束条件,要么在链表当中找到该元素,要么链表结束.
//如果找到该元素.q指向要删除的节点. p指向q的上一个节点. 否则q指向链表的结点.
if(q->data==x) //判断在链表当中是否找到该元素.
{ //找到的话则执行将该节点删除的操作.
y=q->data;
p->next=q->next; //将要删除的节点孤立. 就是将上一个节点的next指针置为下一个节点的地址.
delete q; //释放节点.
cout<<"记录成功删除!"<<endl;
}
else //没有找到就输出不存在.
{
cout<<x<<"不存在于链表当中!"<<endl;
y=false; //返回false,表示删除失败.
}
return y;
}