(填空题)
下列算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同,试完成该算法。 void DelSameNode(LinkList L) //L是带头结点的单链表,删除其中的值重复的结点// {ListNode * p,*q,*r; p=L->next; //p初始指向开始结点// while(p){ //处理当前结点p// q=p; r=q->next; do { //删除与结点*p的值相同的结点// while(r&&r->data!=p->data){ q=r; r=r->next; } if(r){ //结点*r的值与*p的值相同,删除*r// q->next=r->next; free(r); r=(); } }while( r ); p=p->next; } }
正确答案
答案解析
略
相似试题
(简答题)
对于结点类型为LNode的单链表,编写出下列算法。 删除单链表中的第i个结点。
(简答题)
已知指针la和lb分别指向两个无头结点单链表中的首元结点。下列算法是从表la中删除自第i个元素起共len个元素后,将它们插入到表lb中第i个元素之前。试问此算法是否正确?若有错,请改正之。
(简答题)
设计一个算法,功能是在带头结点的单链表head中删除数据域值最小的结点。
(简答题)
已知单链表中各结点的元素值为整型且递增有序,设计算法删除链表中所有大于mink且小于maxk的所有元素,并释放被删结点的存储空间。
(简答题)
已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。
(简答题)
对于结点类型为LNode的单链表,编写出下列算法。 在有序单链表中插入一个元素x的结点。
(简答题)
对于结点类型为LNode的单链表,编写出下列算法: 统计出单链表中结点的值等于给定值x的结点数。
(简答题)
已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同),同时释放被删结点空间,并分析你的算法的时间复杂度。
(单选题)
己知指针p指向单链表中的某结点,则下列各组语句能删除链表中结点的是()