2、文件的逻辑结构
思维导图
逻辑结构VS物理结构
文件的逻辑结构和物理结构可直接类比于线性表的逻辑结构和物理结构
文件的逻辑结果分类
1、无结构文件
2、有结构文件
按照记录的长度来分:
按照逻辑结构来分:
1、顺序文件
1、顺序文件:逻辑上一个接一个排列,可以类比于线性表
2、顺序文件可以以顺序存储的方式存储,类比于顺序表;也可以用链式存储的方式存储,可以类比于链表
3、顺序文件有两种结构:串结构和顺序结构;主要的区别是关键字的顺序和记录的顺序是否一致;
4、问题:已经知道了文件的起始地址(也就是第一个记录存放的位置),能否快速找到第 i 个记录对应的地址?(即能否实现随机存取)
问题:能否实现随机存取?
上图中给出结果:
1、当记录变长时,由于每条记录长度不同,我们就没法用一种特定的规律来直接计算想要的记录的地址
2、当记录定长时,且采用串结构存储时,无法随机查找到某个关键字的位置,但是可以随机查找到某个记录的位置
3、当记录定长时,且采用顺序结构存储时,可以随机查找到某个关键字的位置,但是可以随机查找到某个记录的位置
2、索引文件
建立索引与记录一一对应关系,又因为索引表是定长的顺序文件,所以,在索引表上可以实现随机存取,因此可以快速找到第 i 个记录对应的索引项。
3、索引顺序文件
顺序索引文件区别与索引文件的地方在于:并不是每一个数据项都建立一个索引表项,这样也可以极大的提高效率。例如:
对于上图中的问题:当记录很多很多时查找的效率仍然不高,因此根据索引表的思想,可以继续建立二级索引表来提高查找效率
梳理:
上述有点结构太乱,梳理一下
随机查找:是指否可以直接找到某记录,例如,可以直接用地址找到数组下标为i的值,而不需要从数组开始顺序访问
快速查找:指是否可以用高效的查找算法进行查找,例如冒泡、折半等。