构造一个链表的删除方法,把链表中的数据元素x删除

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:51:17
x的位置要自己写算法查找?如何查找?
int listdatadelete(seqlist *head,dataType *y)
/*删除带头结点的单链表head的数值为x的结点*/
/*被删除节点的数据元素域值由x带回。删除成功返回1,失败返回0*/

listltem listdelete(int x,list L)
{
int i,Listltem k;
if(x<1||x<L->n)
error;
k=L->table[x-1];
for(i=x;i<L->n;i++)
L->table[i-1]=L->table[i];
L->n--;
return k;

}

void erase(const int& n)
{
Node* p = head;
if(head==NULL)
throw"The list is null";
else if(head->data==n)
{
Node* p=head->next;
delete head;
p=head;
}//head=p;
else
{
while(p!=NULL)
{
p = p->next;
Node* q=p->next;
if(q->data==n)
{
p->next=q->next;
delete q;
}