为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构问题

数据结构问题

C
sunny超1 2017-10-31 16:05:45
设计算法实现删除顺序表中多余重复元素。比如说对于顺序表(1,2,3,1,3,4,3,5),删除第四个1及第五个3和第七个3。代码如下,问题是我不知道为什么运行后输入表长8,再输入元素后结果为123343.拜托哪位高人能指点一下?#include <stdio.h> #include <malloc.h> #define maxlen 100 typedef struct{  int data[maxlen];  int last; }Sequenlist; Sequenlist *Sqlset(){  Sequenlist *L;  int i;  L=(Sequenlist *)malloc(sizeof(Sequenlist));  L->last=-1;  printf("请输入表长:");  scanf("%d",&i);  printf("请输入元素:");  if(i>0){   for(L->last=0; L->last<i; L->last++)    scanf("%d",&L->data[L->last]);   L->last--;  }  return(L); } void Printlist(Sequenlist *L) {  int i;  for(i=0;i<L->last;i++)   printf("%d",L->data[i]);  printf("\n"); } void SqLdelete(Sequenlist *L,int x) {  int i;  for(i=x;i<=L->last;i++)   L->data[i]=L->data[i+1];  L->last--; } void compare(Sequenlist *L) {  int i=0,j=0;  for(i=0;j<L->last;i++)   for(j=i+1;j<L->last;j++)    if(L->data[i]==L->data[j]){     SqLdelete(L,j);     j--;    } } void main() {  Sequenlist *L;  L=Sqlset();  compare(L);  Printlist(L); }
查看完整描述

1 回答

  • 1 回答
  • 1 关注
  • 1190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信