数据结构链表指定元素删除 结果只显示删除后面的值,求解,谢谢
#include<stdio.h>#include<stdlib.h>typedefstructnode{structnode*next;intvalue;}link;l...
#include<stdio.h>#include<stdlib.h>
typedef struct node
{
struct node *next;
int value;
}link;
link *create()
{
int n;
link *p,*h,*q;
h=q=NULL;
scanf("%d",&n);
while(n>0)
{
p=(link *)malloc(sizeof(link));
p->next=NULL;
p->value=n;
if(h==NULL)
{
h=q=p;
}
else
{
q->next=p;
q=p;
}
scanf("%d",&n);
}
return h;
}
void shanchu(int n)
{
int j=1;
link *h,*p,*q;
h=create();
p=h;
while(h->next!=NULL&&j<n){
h=h->next;
j++;
}
q=p->next;
if(p->next==NULL)
{
printf("删除的位置不对\n");
}
else
{
q=p->next;
p->next=q->next;
free(q);
printf("链表的%d位置已删除\n",n);
}
while(h->next!=NULL)
{
printf("---%d",h->value);
h=h->next;
}
free(h);
}
main()
{
int n=6;
shanchu(n);
} 展开
typedef struct node
{
struct node *next;
int value;
}link;
link *create()
{
int n;
link *p,*h,*q;
h=q=NULL;
scanf("%d",&n);
while(n>0)
{
p=(link *)malloc(sizeof(link));
p->next=NULL;
p->value=n;
if(h==NULL)
{
h=q=p;
}
else
{
q->next=p;
q=p;
}
scanf("%d",&n);
}
return h;
}
void shanchu(int n)
{
int j=1;
link *h,*p,*q;
h=create();
p=h;
while(h->next!=NULL&&j<n){
h=h->next;
j++;
}
q=p->next;
if(p->next==NULL)
{
printf("删除的位置不对\n");
}
else
{
q=p->next;
p->next=q->next;
free(q);
printf("链表的%d位置已删除\n",n);
}
while(h->next!=NULL)
{
printf("---%d",h->value);
h=h->next;
}
free(h);
}
main()
{
int n=6;
shanchu(n);
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询