首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

新手第三问 带头结点的单链表的结点删除,该怎么解决

2012-03-03 
新手第三问 带头结点的单链表的结点删除要求删除数据部分等于给定参数的结点 ,请会的朋友帮我写下,写了半

新手第三问 带头结点的单链表的结点删除
要求删除数据部分等于给定参数的结点 ,请会的朋友帮我写下,写了半天总是段错误,郁闷死了


函数申明是样的:int Delete_LinkList(LinkList L,dataType data)
返回删除的结点个数;
功能:删除链表L中数据域等于data的结点
备注:L是带头结点的,头结点不存数据;


链表的申明 
typedef struct node
{
dataType date;
struct node* next;
}LNode,*LinkList;

[解决办法]
node *find_lklist(lklist l, dataType date ) //扫描(查找第i个元素 ) 
{
node *p=l;

while ((p->next!=NULL)&&(p->next->date !=date ))
{
p=p->next;
}
if (p->next->date ==date) return(p);
else return (NULL);
}
void delete_lklist(lklist &l , dataType date) //删除 
{
node *p=find_lklist(l,date),*q;
if (p!=NULL)
{
q=p->next;
p->next=q->next;
delete q;
}
else printf("不存在要删除的结点");
}

热点排行