C语言 单链表的错误
来源:百度知道 编辑:UC知道 时间:2024/05/24 03:09:14
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int age;
}STU;
typedef struct _NODE
{
STU data;
struct _NODE *next;
}NODE;
typedef struct
{
NODE *head;
NODE *last;
int counts;
}LINK;
main()
{
NODE *temp,*node;
LINK *link;
int i;
STU info;
link=(LINK *)malloc(sizeof(LINK));
for(i=0;i<3;i++)
{
info.age=i;
node=(NODE *)malloc(sizeof(NODE));
node->data=info;
if(link->head==NULL)
{
link->head=node;
link->last=node;
}
else
{
link->last->next=node;
link->last=node;
}
link->last->next=NULL;
}
temp=link->head;
while(temp!=NULL)
{
printf("%d\t",temp->data.age);
temp=temp->next;
#include<stdlib.h>
typedef struct student
{
int age;
}STU;
typedef struct _NODE
{
STU data;
struct _NODE *next;
}NODE;
typedef struct
{
NODE *head;
NODE *last;
int counts;
}LINK;
main()
{
NODE *temp,*node;
LINK *link;
int i;
STU info;
link=(LINK *)malloc(sizeof(LINK));
for(i=0;i<3;i++)
{
info.age=i;
node=(NODE *)malloc(sizeof(NODE));
node->data=info;
if(link->head==NULL)
{
link->head=node;
link->last=node;
}
else
{
link->last->next=node;
link->last=node;
}
link->last->next=NULL;
}
temp=link->head;
while(temp!=NULL)
{
printf("%d\t",temp->data.age);
temp=temp->next;
我给你改好了,你在初始化的时候 没有初始化head和last的next值!
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int age;
}STU;
typedef struct _NODE
{
STU data;
struct _NODE *next;
}NODE;
typedef struct
{
NODE *head;
NODE *last;
int counts;
}LINK;
void main()
{
NODE *temp,*node;
LINK *link;
int i;
STU info;
link=(LINK *)malloc(sizeof(LINK));
link->head = NULL;
link->last = NULL;
for(i=0;i<3;i++)
{
info.age= i+20;
node=(NODE *)malloc(sizeof(NODE));
node->data = info;
if(link->head==NULL)
{
link->head=node;
link->last=node;
}
else
{
link->last->next=node;
link->last=node;
}
link->last->next=NULL;
}