您的位置:首页 > 其它

如何创建一个链表

2013-12-11 21:58 330 查看
链表是一种常见的重要的数据结构,它是动态的进行内存存储分配的一种结构。

用数组存放数据时,必须事先定义固定的长度(即元素个数),但是事先难以确定有多少个元素时,则必须把数组定义的足够大,以保证成功。

无疑,这会造成内存浪费,然而,链表则没有这种缺点,它可以根据需要,动态开辟内存单元。

链表中的各个元素在内存中是可以不是连续存放的,但是要找到某一元素,必须知道它的地址,这就需要链表必须有一个头指针(head)。

#include <stdlib.h>
#include <stdio.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};

int n;
struct student *creat(void)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *)malloc(LEN);
scanf(“%ld,%f”,&p1->num,&p1->score);
head=NULL;
while(p1->num != 0)
{
n=n+1;
if(n == 1)
head = p1;
else
p2->next = p1;
p2 = p1;
p1 = (struct student *)malloc(LEN);
scanf(“%ld,%f”,&p1->num,&p1->score);
}
p2->next = NULL;
return(head);
}

void main()
{
creat();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: