代码没有输出
#include
#include
typedef int Elemtype;
typedef struct LNode{
Elemtype data;
struct LNode *next;
}LNode,*Linklist;
void Init_Linklist(Linklist *L)
{
*L=(Linklist)malloc(sizeof(LNode));
(L)->next=NULL;
}
void Create_Linklist(LinklistL,int Len)
{
LNode *p,*q;
p=*L;
for(int i=0;i
q=(Linklist)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=NULL;
}
void DeleteSame(Linklist *L)
{
LNode *p,*q,*s;
p=(*L)->next;
for(p;p!=NULL;p=p->next)
{
s=p;
for(q=p->next;q!=NULL;)
{
if(q->data==p->data)
{
s->next=q->next;
free(q);
q=s->next;
}
else
{
s=q;
q=q->next;
}
}
}
}
void Print_Linklist(Linklist *L)
{
LNode *p;
p=*L;
while(p->next)
{
p=p->next;
printf("%d ",p->data);
}
printf("\n");
}
int main(){
int Len;
Linklist L;
Init_Linklist(&L);
Create_Linklist(&L,Len);
scanf("%d ",&L);
DeleteSame(&L);
Print_Linklist(&L);
return 0;
}
main方法中,调用Create_Linklist(&L,Len);时,Len的值都没有。
while(1){
q=(Linklist)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
char c=getchar();
if(c=='\n'){
break;
}
}
int main(){
int Len;
Linklist L;
scanf("%d",&Len);
Init_Linklist(&L);
Create_Linklist(&L,Len);
DeleteSame(&L);
Print_Linklist(&L);
return 0;
}
改动处见注释,供参考:
#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef struct LNode{
Elemtype data;
struct LNode *next;
}LNode,*Linklist;
void Init_Linklist(Linklist *L)
{
*L=(Linklist)malloc(sizeof(LNode));
(*L)->next=NULL;
}
void Create_Linklist(Linklist L,int Len)
{
LNode *p,*q;
p = L; //p=*L; 修改
for(int i=0; ;i++){// i<Len 修改
q=(Linklist)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p = q;
char c = getchar(); //修改
if (c == '\n') break;//修改
}
p->next=NULL;
}
void DeleteSame(Linklist L)//(Linklist *L) 修改
{
LNode *p,*q,*s;
p = L->next; //p=(*L)->next; 修改
for(p;p!=NULL;p=p->next)
{
s=p;
for(q=p->next;q!=NULL;)
{
if(q->data==p->data)
{
s->next=q->next;
free(q);
q=s->next;
}
else{
s=q;
q=q->next;
}
}
}
}
void Print_Linklist(Linklist L) //Linklist *L) 修改
{
LNode *p;
p = L; //p=*L; 修改
while(p->next)
{
p=p->next;
printf("%d ",p->data);
}
printf("\n");
}
int main(){
int Len = 0; //修改
Linklist L;
Init_Linklist(&L);
//scanf("%d ",&Len);//修改
Create_Linklist(L,Len);//(&L,Len) 修改
DeleteSame(L);//(&L) 修改
Print_Linklist(L);//(&L) 修改
return 0;
}