L->next=p;
}//结束 for
}//end of CreateList() function
int ListDelete_L(LinkList &L,int i,int &e) //ListDelete_L() function
{ //在带头结点的单链线性表 L 中,删除第 i 个元素,并由 e 返回其值
LNode *p,*q;
int j=0;
p=L;
while(p->next&&j<i-1) //寻找第 i-1 个结点
{ p=p->next;++j;
}
if(!p||j>i-1) //删除位置不合理
{ cout<<"位置"<<i<<"的数据不存在!"<<endl;
getch();
return(0);
}
q=p->next; //用指针 q 指向被删除的结点
p->next=q->next; //删除第 i 个结点
e=q->data; //取出第 i 个结点数据域值
free(q); //释放第 i 个结点
return (e);
}//结束删除元素
void main() //main() function
{
LinkList L;
LNode *p;
int e; //e can be Every DataType
int i,j; //j is just a counter for cycle
int LListNodeNum;
cout<<"ListDelete_L.cpp"<<endl<<"================"<<endl<<endl;
cout<<"请输入创建的单链表的结点个数: ";
cin>>LListNodeNum;
cout<<endl<<"请输入创建的单链表中的数据 "<<endl;
CreateList_L(L,LListNodeNum);
cout<<endl<<"成功创建一个带头结点的单链表 L:";
p=L->next;
while(p) //输出创建的单链表
{ cout<<p->data<<" ";
p=p->next;
}//end of for
评论0