您的位置:首页 > 其它

顺序表应用1:多余元素删除之移位算法

2016-07-26 19:06 453 查看
#include <stdio.h>

#include <stdlib.h>

typedef struct

{
int *elem;
int length;
int listsize;

}sql;

void creat(sql &L,int n)

{
int i;
L.length=n;                            //é�¿åº¦
L.elem=(int *)malloc(n*sizeof(int));   //å¼�è¾�空é�´
for(i=0;i<n;i++)
{
scanf("%d",&L.elem[i]);
}

}

void del(sql &L,int k)

{
int *p,*q;

q=L.elem+L.length;
for(p=&L.elem[k];p<q;p++)//å��ç´ å·¦ç§»k+L.elem
{
*p=*(p+1);
}

      L.length--;

}

void search(sql &L)

{

   int *p,*q;

   for(p=L.elem;p<L.length+L.elem;p++)

   {
  for(q=p+1;q<L.length+L.elem;q++)
  {
  if(*p==*q)
  {
  del(L,q-L.elem);
  q--;
  }
  }

   }

}

void display(sql &L,int n)

{
int i;
for(i=0;i<L.length;i++)
{
if(i==L.length-1)
{

        printf("%d\n",L.elem[i]);
}
else
{

    printf("%d ",L.elem[i]);
}

}

}

int main()

{
sql L;
int m,n,i,j;
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&n);
creat(L,n);
search(L);

        //printf("%d\n",L.length);

        display(L,n);
 
}
 return 0;

}

/**************************************
Problem id
: SDUT OJ B 
User name
: wy150318王鹏鹏 
Result
: Accepted 
Take Memory
: 320K 
Take Time
: 30MS 
Submit Time
: 2016-07-26 16:38:29  

**************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: