您的位置:首页 > 其它

静态链表的学习

2015-10-13 15:35 253 查看
静态链表:

为什么叫静态链表呢?因为链表一般都是动态的,可以随时删除插入结点。而静态链表是一维数组(在c语言中,书上说的是一位数组,但是我感觉是二维数组)。由每个数据后面都跟上一个游标,相当于指针,所以叫静态链表。

静态链表为什么会有数组和链表的双重优点呢?数组有随机存取,链表有删除插入的有优点,首先数组本来就是在逻辑和物理上都有顺序的排列在一起,每个相邻的数据在物理内存上也是相邻的。所以数组前面就有一个隐藏固定的标记。所以查找方便,而静态链表本身就是一个数组所以他就继承了这个优点,而在数据后面都紧跟一个游标,而这个游标是随时可以改变的,就相当于链表的指针。

静态链表几个重要的地方:

i=s[i].cur的操作就相当于指针往后移(类似于p->p.next).

静态链表需要自己申请空间,

—————————以下自己的一些胡思乱想——————————

我不知道静态链表的效率怎么样,在计算机内部,数组的查找肯定是在内存中直接到那个地址还是指针一个一个移到那儿,而指针的查找肯定是从一个地址转到另一个地址,而静态数组的游标是每个数据基本上都在一块,查找的时候应该是按着数组从前往后依次检验游标是否就是想找的那个,这个应该需要查找《计算机操作原理》吧,就想到这么多。以后看了那本书再解决这儿的问题吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: