240807单链表的创建
作者:
Yoture
,
2024-08-07 10:43:39
,
所有人可见
,
阅读 4
//首先是带头结点的尾插法
linklist listinsert(linklist &l){
int x;
l=(linklist)malloc(sizeof(lnode));
lnode *s,*r=l;
scanf("%d",&x);
while(x!=99999){
s=(lnode *)malloc(sizeof(lnode));
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
return L;
}
//带头结点头插法
linklist listinsert(linklist& l){
int x;
lnode *p;
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
scanf("%d",&x);
while(x!=99999){
p=(linklist)malloc(sizeof(lnode));
p->next=l->next;
l->next=p;
p->data=x;
scanf("%d",&x);
}
return l;
}
//注意头插法插入倒置,如何正过来?
//自己写了一个不带头结点的头插法
linklist listinsert(linklist &l){
int x;
lnode *p;
s=(linklist)malloc(sizeof(lnode));
if (s == NULL) {
printf("Memory allocation failed\n");
return NULL; // 如果内存分配失败,则返回 NULL
}
if(l==NULL){
l=s;
}
else{
s->next=l;
l=s;
}
l->next=NULL;
scanf("%d",&x);
while(x!=99999){
p=(linklist)malloc(sizeof(lnode));
p->next=l->next;
l->next=p;
p->data=x;
scanf("%d",&x);
}
return l;
}