有序链表删除重复数字节点c语言,删除顺序线性表中重复元素(C语言),求解...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

帮你改好了:

#include

#include

#define    MAXSIZE    20

typedef    int datatype;

typedef struct

{datatype    data[MAXSIZE];

int    last;    /*顺序表中最后一个元素的序号*/

}SeqList;

/*创建顺序表*/

void    input(SeqList *L)

{int i,x;

i=0;

printf("\n输入顺序表元素值,-1结束:");

scanf("%d",&x);

while(x!=-1)

{L->data[i]=x;i++;

if(i==MAXSIZE)printf("表空间已满!");

else scanf("%d",&x);

}

L->last=i-1;

}

/*删除重复元素*/

void Del(SeqList *L)

{int i,j,k,h;

h=(*L).last;                                            // len改成last

if(h==0)

printf("List is empty\n");

else

for(i=0;i

for(j=i+1;j

{if((*L).data[j]==(*L).data[i]) /*找相同元素*/

{for(k=j;k

(*L).data[k]=(*L).data[k+1]; /*元素前移*/

(*L).last--;                                          // len改成last

}

}

}

/*输出顺序表*/

void output(SeqList    *L)

{int i;

printf("\n输出顺序表中的各个元素值:\n");

for(i=0;i<=L->last;i++)

printf("%d    ",L->data[i]);

}

/*主函数*/

void main()

{SeqList *L;

L=(SeqList    *)malloc(sizeof(SeqList));

input(L);

Del(L);

output(L);

//getch();                                       // 注释掉这句

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值