【C语言提高51】链表基本概念与静态链表
来源:互联网 发布:mac cocos2dx android 编辑:程序博客网 时间:2024/05/16 13:07
链表是一种物理存储单元上非连续的存储结构,由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,节点与节点之间通过指针链接。每个结点包括两个部分:一部分是存储数据元素的数据域,另一部分是存储下一个结点地址的指针域。
链表是一种物理存储单元上非连续的存储结构,由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,节点与节点之间通过指针链接。每个结点包括两个部分:一部分是存储数据元素的数据域,另一部分是存储下一个结点地址的指针域。
1 链表是一种常用的数据结构,它通过指针将一些列数据结点,连接成一个数据链。相对于数组,链表具有更好的动态性。
2 数据域用来存储数据,指针域用于建立与下一个结点的联系。
3 建立链表时无需预先知道数据总量的,可以随机的分配空间,可以高效的在链表中的任意位置实时插入或删除数据。
4 链表的开销,主要是访问顺序性和组织链的空间损失。
l链表编程元素分析
•头结点、当前结点、前趋结点、后继结点
•pHead、pCurrent、pPrior、pNext
•新建结点
•pMalloc
l链表编程关键点2点
•1、指针指向谁,就把谁的地址赋给指针
•Code=Diagram 条件反射
•2、辅助指针变量&操作逻辑的关系
•看图说话
静态链表:
//链表数据类型typedef struct Teacher{int data;struct Teacher *next;}Teacher;//无法返回出链表 因为内存以及被销毁Teacher*CreatLIST(){Teacher t1, t2, t3;t1.data = 1;t2.data = 2;t3.data = 3;t1.next = &t2;t2.next = &t3;t3.next = NULL;return &t1;}void main21(){//Teacher*head = CreatLIST(); //野指针//静态链表:固定大小个数 结点内存声明周期不给力Teacher t1, t2, t3;t1.data = 1;t2.data = 2;t3.data = 3;t1.next = &t2;t2.next = &t3;t3.next = NULL;//静态链表的遍历Teacher*p = NULL;p = CreatLIST();while (p){printf("data:%d\n",p->data);p = p->next; //实现指针的下移}printf("hehehe\n");system("pause");return;}
0 0
- 【C语言提高51】链表基本概念与静态链表
- 静态链表的实现与操作(C语言实现)
- 静态链表实现(c语言)
- C语言数据结构 静态链表
- 静态链表C语言实现详解
- 用C语言建立静态链表
- C语言实现静态链表
- 静态链表--C语言实现
- 静态链表 c语言实现
- c语言静态链表基础
- C语言静态链表的实现
- 【C语言提高52】链表的基本操作
- 【C语言提高05】静态存储区
- 【C语言】建立静态链 并 输出链表
- C语言基础与提高
- C语言数据结构----链表(静态链表)
- c语言实现的静态链表 多指教
- c语言实现静态链表的基本操作
- springmvc拦截器
- HDOJ 1575 Tr A (矩阵快速幂)
- MYSQL存储过程
- LAME库裁剪
- [工作小结]PHP和其他编程语言联合开发网站的一种方法
- 【C语言提高51】链表基本概念与静态链表
- 2016.1.13笔记
- [VS2005]_[Windows]_[VS 的链接库说明]
- apache-common-pool2(配置参数详解,以及资源回收,从池中获取资源,将资源返还给池 逻辑解析)
- 两个ArrayList<String>() 的并集,交集,差集
- 如何定义和实现一个类的成员函数为回调函数(转)
- spark graphx文章整理
- OGG迁移到12C后,提示参数冲突(OGG-10107 )
- Linux 多个快速切换目录