作业帮 > 综合 > 作业

数据结构算法设计题:单循环链表中删除表中所有数值相同的多余元素

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/15 16:52:32
数据结构算法设计题:单循环链表中删除表中所有数值相同的多余元素
数据结构算法设计题:单循环链表中删除表中所有数值相同的多余元素
//算法设计题:单循环链表中删除表中所有数值相同的多余元素
#include
#include
#include
#define OK 1
#define Status int
typedef struct LNode
{
int data;
LNode *next;
}LNoed,*LinkList;
Status CreateList_L(LinkList &L)
{
int n,i;
LinkList p,q;
printf("input the length of the List\n");
scanf("%d",&n);
printf("input the data\n");
L=(LinkList)malloc(sizeof(LNode));
q=L;
scanf("%d",&L->data);
//L->next=NULL;
for(i=2;idata);
q->next=p;
//p->next=NULL;
q=p;
}
p->next=L;
return OK;
}
Status OutList_L(LinkList L)
{
printf("the List is\n");
LinkList p;
p=L;
do
{
printf("%4d",p->data);
p=p->next;
}while(p!=L);
printf("\n");
return OK;
}
Status ListDelete_L(LinkList &L)
{
LinkList q,r,p,p1;
q=L;
do
{ p=q;
p1=p->next;
while(p1!=L)
{
if(q->data==p1->data)
{ r=p1;
p1=p->next=r->next;
free(r);
}
else
{
p1=p1->next;
p=p->next;
}
}
q=q->next;
}while(q!=L);
return OK;
}
void main()
{
LinkList La;
CreateList_L(La);
OutList_L(La);
ListDelete_L(La);
OutList_L(La);
}
//朋友,这是我花了一个小时写出来的,我觉得用双向链表其实更好做.记住一定要自己想哟,上面的程序仅供参考!一定要在VC中运行哟,因为&是C++里面的东西.不过你也可以改用指针.