我想问一道关于数据结构的题~~~高手帮忙呀~~~没分了~~~求救呀 帮我看看DELE函数哪里出错了
/*2.单链表的练习二:(1)编写算法,创建带头结点的单链表,其结点结构如下:*/typedefcharelemtype;typedefstructnode{elemty...
/*2.单链表的练习二:
(1) 编写算法,创建带头结点的单链表,其结点结构如下:*/
typedef char elemtype;
typedef struct node
{
elemtype data;
struct node *link;
}NODE;
NODE * inte()
{
NODE *p,*t,*head;
head=(NODE*)malloc(sizeof(NODE));
head->link=NULL;
t=head;
while(1)
{
p=(NODE*)malloc(sizeof(NODE));
printf("请输入信息:\n");
fflush(stdin);
scanf("%c",&p->data);
p->link=NULL;
t->link=p;
t=p;
fflush(stdin);
printf("还要继续输入吗?(y/n)\n");
fflush(stdin);
if(getchar()=='n')
break;
}
return(head);
}
void view(NODE *head)
{
NODE *p=head->link;
while(p)
{
printf("%c ",p->data);
p=p->link;
}
}
NODE * dele(NODE *head,NODE *other)
{
NODE *h,*p,*q=head;
for(h=head->link;h->link!=NULL;h=h->link)
{
q=q->link;
for(p=other->link;p->link!=NULL;p=p->link)
{
if(p->data==h->data)
{
q->link=h->link;
break;
}
}
}
return(head);
}
void main()
{
NODE *head,*other,*x;
head=inte();
view(head);
printf("\n-------------------------\n");
other=inte();
view(other);
printf("\n-------------------------\n");
x=dele(head,other);
view(x);
}
/*(2) 编写算法,遍历单链表,输出所有结点的信息.*/
/*(3) 用上述创建算法,创建两条单链表a,b.编写算法,删除a中所有同时出现在a,b两条
链上的数据。*/ 展开
(1) 编写算法,创建带头结点的单链表,其结点结构如下:*/
typedef char elemtype;
typedef struct node
{
elemtype data;
struct node *link;
}NODE;
NODE * inte()
{
NODE *p,*t,*head;
head=(NODE*)malloc(sizeof(NODE));
head->link=NULL;
t=head;
while(1)
{
p=(NODE*)malloc(sizeof(NODE));
printf("请输入信息:\n");
fflush(stdin);
scanf("%c",&p->data);
p->link=NULL;
t->link=p;
t=p;
fflush(stdin);
printf("还要继续输入吗?(y/n)\n");
fflush(stdin);
if(getchar()=='n')
break;
}
return(head);
}
void view(NODE *head)
{
NODE *p=head->link;
while(p)
{
printf("%c ",p->data);
p=p->link;
}
}
NODE * dele(NODE *head,NODE *other)
{
NODE *h,*p,*q=head;
for(h=head->link;h->link!=NULL;h=h->link)
{
q=q->link;
for(p=other->link;p->link!=NULL;p=p->link)
{
if(p->data==h->data)
{
q->link=h->link;
break;
}
}
}
return(head);
}
void main()
{
NODE *head,*other,*x;
head=inte();
view(head);
printf("\n-------------------------\n");
other=inte();
view(other);
printf("\n-------------------------\n");
x=dele(head,other);
view(x);
}
/*(2) 编写算法,遍历单链表,输出所有结点的信息.*/
/*(3) 用上述创建算法,创建两条单链表a,b.编写算法,删除a中所有同时出现在a,b两条
链上的数据。*/ 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询