您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记 链表基础

2016-06-14 22:06 316 查看
链表

一、链表的应用背景及使用情况:

1、项目数据再添加过程中存在不确定的数,无法在编写程序中分配确定的内存空间;

2、在频繁运用malloc()分配内存;

3、数据块分配的空间不连续;

4、不能用大数据指针或者需要节省使用空间;

为了解决上述问题,C语言中增加了链表。

二、基本形式及原则

链表是一个列表,其中每一项都包含一个元素,这个元素可以描述下一个列表或数据的存储地址。在使用链表过程中,需要运用以下基本指针:

1、空指针(NULL),在stdio.h库中

#include <stdio.h>


2、头指针(head pointer):存放链表的起始地址。

3、next指针(next pointer):存放下一个结构的地址,当没有下一个结构的时候,next pointer 为NULL。

在介绍了上述的指针后,接下来简述一下链表的基本原理:

Created with Raphaël 2.1.0地址head地址head结构体A结构体A结构体B结构体B......endendhead指针存放结构体A首地址结构体A的next pointer指向结构体B结构体B的next pointer指向结构体...结构体...的next pointer指向结构体endend的next pointer指向NULL

三、链表的实现

由于链表的code比较多,为了减少阅读难度,以下是链表的实现的流程图。

Created with Raphaël 2.1.0START调用函数库建立结构体原型初始化结构体指针(*head=NULL;*prev;*current)main()malloc()缓存数据判断head==NULL ?head=currentcurrent->next=NULL缓存数据并赋值结构体调用结构体释放 malloc空间(free)ENDprev->next=currentyesno

小结

以上是初学C语言的笔记,其中可能存在纰漏或者理解不到位之处,希望大家能够谅解。上面的流程图由于第一次运用程序进行编写,绘制的惨不忍睹~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 链表 数据