文件名称:在C中构造数据结构-vmware虚拟机中centos安装 centos安装qt的教程图解
文件大小:8.63MB
文件格式:PDF
更新时间:2024-06-29 06:29:57
程序设计实践
3.3 在C中构造数据结构 现在开始考虑C语言中的实现。首先是定义一些常数: 这个声明定义了前缀中词的个数 (N P R E F ),散列表数组的大小 (N H A S H),生成词数的上界 (M A X G E N)。如果N P R E F是个编译时的常数而不是运行时的变量,程序里的存储管理将会更简 单些。数组的规模设得相当大,因为我们预计程序可能处理很大的输入文件,或许是整本书。 选择N H A S H = 4 0 9 3,这样,即使输入里有10 000个不同前缀 (词对),平均链长仍然会很短,大 约两个到三个前缀。数组越大,链的期望长度越短,查询进行得也越快。实际上,这个程序 还仍然是个摆设,因此其性能并不那么关键。另一方面,如果选用的数组太小,程序将无法 在合理时间里处理完可能的输入。而如果它太大,又可能无法放进计算机的存储器中。 前缀可以用词的数组的方式存储。散列表的元素用 S t a t e(状态)数据类型表示,它是前缀 与S u f f i x(后缀)链表的关联: 现在看一看图示,整个数据结构将具有下面的样子: 第 3章 设计与实现计计51 下载