当前位置:编程学习 > C/C++ >>

C:链表的操作(一),如何创建一个链表

链表是一种常见的重要的数据结构,它是动态的进行内存存储分配的一种结构。
 
用数组存放数据时,必须事先定义固定的长度(即元素个数),但是事先难以确定有多少个元素时,则必须把数组定义的足够大,以保证成功。
 
无疑,这会造成内存浪费,然而,链表则没有这种缺点,它可以根据需要,动态开辟内存单元。
 
链表中的各个元素在内存中是可以不是连续存放的,但是要找到某一元素,必须知道它的地址,这就需要链表必须有一个头指针(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();
}
 
这样便可创建链表,如图:
 
 
 
到此,便可创建一个链表了。
 
请支持 李木空间
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,