A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tutucoo 中级黑马   /  2015-6-10 18:41  /  1149 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

链表是学习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();
}



到此,便可创建一个链表了。

9 个回复

倒序浏览
学习了!感谢!
回复 使用道具 举报
我也觉得链表很重要,为什么老是视频里没讲呢
回复 使用道具 举报
围观学习
回复 使用道具 举报
白0702 发表于 2015-6-11 09:00
我也觉得链表很重要,为什么老是视频里没讲呢

链表 其实属于数据结构的东西了
什么二叉树 属于另外一门课了 涉及的东西会更多
计算机专业课里很重要的一门
回复 使用道具 举报
来学习啦  一起努力
回复 使用道具 举报
学习了.下次来点注释讲解清楚一点把:handshake
回复 使用道具 举报
Theshy 中级黑马 2015-6-13 00:09:34
8#
以后不学的 你放心{:3_47:}
回复 使用道具 举报
你说的是最基本的构造动态链表,值得学习。
回复 使用道具 举报
lipeng524824 来自手机 中级黑马 2015-6-13 23:10:16
10#
围观学习,挺不错的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马