面试题答案
一键面试顺序结构
- 特点:
- 文件中的记录按照某种顺序依次存放,逻辑上相邻的记录在物理存储位置上也相邻。
- 顺序存取速度快,因为只要知道起始地址和记录长度,就能很快找到后续记录。
- 随机存取效率低,若要访问中间某条记录,需从开头依次读取到目标记录。
- 存储空间利用率不高,因为文件大小变化时,可能需要整体移动文件以适应新空间需求,易产生外部碎片。
- 适用场景:适合顺序访问的文件,如日志文件、批处理数据文件等,这些文件通常按顺序从头到尾处理,很少需要随机访问。
链接结构
- 特点:
- 文件的各个物理块通过指针链接起来,逻辑上相邻的记录物理位置不一定相邻。
- 顺序存取方便,只需顺着指针依次读取即可。
- 随机存取效率低,要访问某条记录,需从文件头开始顺着指针查找。
- 存储空间利用率较高,文件大小动态变化时,只需调整指针,无需移动大量数据,减少外部碎片。
- 可靠性较低,若某个指针损坏,可能导致后续数据无法访问。
- 适用场景:适用于顺序访问为主,对文件大小动态增长有需求的场景,如一些临时文件、简单的文本文件等。
索引结构
- 特点:
- 为文件建立一个索引表,索引表中记录了每个逻辑块对应的物理块地址。
- 随机存取效率高,通过索引表可直接定位到目标记录所在物理块。
- 顺序存取时,可按索引表顺序读取,效率也不错。
- 索引表本身需要占用额外存储空间,文件较大时,索引表也会很大。
- 适用场景:适合需要频繁随机访问的文件,如数据库文件,用户经常需要快速定位到特定记录进行操作。