C语言学习笔记 链表基础
2016-06-14 22:06
316 查看
链表
一、链表的应用背景及使用情况:
1、项目数据再添加过程中存在不确定的数,无法在编写程序中分配确定的内存空间;
2、在频繁运用malloc()分配内存;
3、数据块分配的空间不连续;
4、不能用大数据指针或者需要节省使用空间;
为了解决上述问题,C语言中增加了链表。
二、基本形式及原则
链表是一个列表,其中每一项都包含一个元素,这个元素可以描述下一个列表或数据的存储地址。在使用链表过程中,需要运用以下基本指针:
1、空指针(NULL),在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语言的笔记,其中可能存在纰漏或者理解不到位之处,希望大家能够谅解。上面的流程图由于第一次运用程序进行编写,绘制的惨不忍睹~~~~
一、链表的应用背景及使用情况:
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 语言程序(二)
- [C/C++]反转链表
- 我是运营,我没有假期
- 如何写好 C main 函数
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- C#实现基于链表的内存记事本实例
- 修复mysql数据库
- Lua和C语言的交互详解
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- 简述MySQL分片中快速数据迁移
- MySQL数据备份之mysqldump的使用详解
- C#模拟链表数据结构的实例解析
- C#实现窗体间传递数据实例
- C#中的委托数据类型简介
- SQL Server删除表及删除表中数据的方法
- SqlServer2008误操作数据(delete或者update)后恢复数据的方法
- 给你的数据库文件减肥