递增输出链表结点,删除重复结点
12)按递增次序输出链表结点
#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}Listnode,*LinkList;
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
void reverse(LinkList &La)
{
while(La->next)
{
LinkList pre=La;
LinkList r=pre;//r为辅助指针记录前驱
LinkList p=pre->next;
while(p)
{
if(p->data<pre->next->data)
pre=r;//找到当前最小值的前驱
r=p;p=p->next;
}
cout<<pre->next->data;
LinkList u=pre->next;
pre->next=u->next;
free(u);//删除最小值结点
}
free(La);
}
13)删除带结点的单链表的重复元素
#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}Listnode,*LinkList;
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
void reverse(LinkList &La)
{
LinkList p=La->next;//工作指针;
while(p)
{
LinkList q=p->next,r=p;
while(q)
{
if(q->data==p->data)
{
LinkList u=q;
r->next=u->next;
free(u);
q=r->next;//注意不要断链
}
else
{
r=q;q=q->next;
}
}
p=p->next;
}
}
浙公网安备 33010602011771号