静态链表的学习
2015-10-13 15:35
253 查看
静态链表:
为什么叫静态链表呢?因为链表一般都是动态的,可以随时删除插入结点。而静态链表是一维数组(在c语言中,书上说的是一位数组,但是我感觉是二维数组)。由每个数据后面都跟上一个游标,相当于指针,所以叫静态链表。
静态链表为什么会有数组和链表的双重优点呢?数组有随机存取,链表有删除插入的有优点,首先数组本来就是在逻辑和物理上都有顺序的排列在一起,每个相邻的数据在物理内存上也是相邻的。所以数组前面就有一个隐藏固定的标记。所以查找方便,而静态链表本身就是一个数组所以他就继承了这个优点,而在数据后面都紧跟一个游标,而这个游标是随时可以改变的,就相当于链表的指针。
静态链表几个重要的地方:
i=s[i].cur的操作就相当于指针往后移(类似于p->p.next).
静态链表需要自己申请空间,
—————————以下自己的一些胡思乱想——————————
我不知道静态链表的效率怎么样,在计算机内部,数组的查找肯定是在内存中直接到那个地址还是指针一个一个移到那儿,而指针的查找肯定是从一个地址转到另一个地址,而静态数组的游标是每个数据基本上都在一块,查找的时候应该是按着数组从前往后依次检验游标是否就是想找的那个,这个应该需要查找《计算机操作原理》吧,就想到这么多。以后看了那本书再解决这儿的问题吧。
为什么叫静态链表呢?因为链表一般都是动态的,可以随时删除插入结点。而静态链表是一维数组(在c语言中,书上说的是一位数组,但是我感觉是二维数组)。由每个数据后面都跟上一个游标,相当于指针,所以叫静态链表。
静态链表为什么会有数组和链表的双重优点呢?数组有随机存取,链表有删除插入的有优点,首先数组本来就是在逻辑和物理上都有顺序的排列在一起,每个相邻的数据在物理内存上也是相邻的。所以数组前面就有一个隐藏固定的标记。所以查找方便,而静态链表本身就是一个数组所以他就继承了这个优点,而在数据后面都紧跟一个游标,而这个游标是随时可以改变的,就相当于链表的指针。
静态链表几个重要的地方:
i=s[i].cur的操作就相当于指针往后移(类似于p->p.next).
静态链表需要自己申请空间,
—————————以下自己的一些胡思乱想——————————
我不知道静态链表的效率怎么样,在计算机内部,数组的查找肯定是在内存中直接到那个地址还是指针一个一个移到那儿,而指针的查找肯定是从一个地址转到另一个地址,而静态数组的游标是每个数据基本上都在一块,查找的时候应该是按着数组从前往后依次检验游标是否就是想找的那个,这个应该需要查找《计算机操作原理》吧,就想到这么多。以后看了那本书再解决这儿的问题吧。
相关文章推荐
- 从头到尾彻底理解KMP
- 数据库索引
- Redis 集群方案
- ZCS 开源版管理员指南
- setDescendantFocusability,在父View和子View间处理焦点关系
- ClouderaManager安装hive后执行sql时写hdfs无权限
- 关于Android TouchDelegate源码解析
- Eclipse闪退/打不开/无法启动/一闪而过
- IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
- Java基础知识强化之多线程笔记04:并行和并发 区别
- mkdir命令详解
- Hibernate 学习入门2
- 一道有趣题目
- Centos7安装mysql缺乏yum源怎么安装
- android代码分析,及Terminal使用
- Android - Listener for incoming phone
- [CSS]图片水平排列并且有固定间隔
- easyui的数据表格(datagrid)使用时formatter的技巧
- 不同内核浏览器的差异以及浏览器渲染简介
- 《王保明老师----Linux开发学习笔记》------讲08:进程 -----多进程下的文件描述符