一次冒泡排序:
#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}node, * linklist;
linklist creat_l(linklist &l,int n);
void jisuan(linklist l,int n);
linklist creat_l(linklist &l, int n)
{
linklist p1;
while(n--)
{
p1=(linklist)malloc(sizeof(struct node));p1->next=NULL;
scanf("%d",&p1->data);
p1->next=l->next;
l->next=p1;
}
return l;
}
void print(linklist l)
{
linklist temp=l->next;
while(temp)
{
printf("%6d",temp->data);
temp=temp->next;
}
}
void jisuan(linklist l,int n)
{
int i,j,k;
int *m;
m=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
m[i]=1;
}
linklist t=l->next;
linklist p=t->next;
int count=0;
while(t)
{
while(p)
{
if((t->data==p->data)&&(t!=p))
m[count]=1+m[count];
p=p->next;
}
p=l->next;
count++;
t=t->next;
}
for(i=0;i<n-1;i++)
{
if(m[i]>m[i+1])
{
k=m[i];
m[i]=m[i+1];
m[i+1]=k;
}
}
printf("%d",m[n-1]);
delete[]m;
}
int main()
{
int i;
scanf("%d",&i);
while(i)
{
linklist l;
l=(linklist)malloc(sizeof(node));
l->next=NULL;
int n;
scanf("%d",&n);
l = creat_l(l,n);
jisuan(l,n);
i--;
}
return 0;
}