先对链表进行排序在删除数相等的结点:
已知单链表的无头节点head
void sortDel() //排序+删除
{
pStu p, q, temp1;
int temp;
p = head;
for( p ; NULL != p->Next ; p = p->Next )
{
for( q = p->Next ; NULL != q->Next ; q = q->Next)
{
if( p->Next->a > q->Next->a )
{
temp = p->Next->a;
p->Next->a = q->Next->a;
q->Next->a = temp;
}
}
}
/************以上是排序,下面是去重**********************/
p = head->next;
q = p->next;
while(NULL != q)
{
if(p->a == q->a)
{
temp1 = q;
p->next = q->next;
q = q->next;
delete(temp1);
}
else
{
q = q->next;
p = p->next;
}
}
}
本文介绍了一种单链表排序与删除重复元素的方法。首先遍历链表比较相邻节点值并进行交换以实现排序,然后再次遍历链表删除数值相同的节点,确保链表中所有元素唯一。

1万+

被折叠的 条评论
为什么被折叠?



