字典
数据结构中元素的集合
字典是计算机科学中以唯一关键字(key)组织元素的数据结构,支持通过键实现快速插入、查找和删除操作。其元素由键值对组成,键具有唯一性且支持数字或字符类型,访问方式包含随机访问与顺序访问。
抽象数据类型描述
抽象数据类型Dictionary的描述如下所示。若仅按照一个字典元素本身的关键字来访问该元素,则称为随机访问(random access)。而顺序访问(sequential access)是指按照关键字的递增顺序逐个访问字典中的元素。顺序访问需借助于Begin (用来返回关键字最小的元素)和Next (用来返回下一个元素)等操作来实现。
抽象数据类型Dictionary {
实例
具有不同关键字的元素集合
操作
Create( ):创建一个空字典
Search(k, x):搜索关键字为k的元素,结果放入x;
如果没找到,则返回f a l s e,否则返回t r u e
Insert (x):向字典中插入元素x
Delete (k, x):删除关键字为k的元素,并将其放入x
}
重复元素字典
有重复元素的字典(dictionary with duplicates)与上面定义的字典相似,只是它允许多个
元素有相同的关键字。在有重复元素的字典中,在进行搜索和删除时需要一个规则来消除岐义。也就是说,如果要搜索(或删除)关键字为k的元素,在有些字典应用中,可能需要删除在某个时间以后插入的所有元素。
应用实例
学生成绩
一个班中注册学习数据结构课程的学生构成了一个字典。当有一个新学生注册时,就要在字典中插入与该学生相关的元素(记录)。当有人要放弃这门课程时,则删除他的记录。在上课过程中,老师可以查询字典以得到与某特定学生相关的记录或修改记录(例如,加入或修改考试成绩)。学生的姓名域可作为关键字。
符号表
编译器中定义用户描述符的符号表(symbol table)就是一个有重复元素的字典。当定义一个描述符时,要建立一个记录并插入到符号表中。记录中包括作为关键字的描述符以及其他信息,如描述符类型( i n t,float等)和(相关的)存储其值的内存地址。因为同样的描述符名可以定义多次(在不同的程序块中),所以符号表中必然存在有多个记录具有相同的关键字,搜索结果应是最新插入的元素。只有在程序块的结尾才能进行删除,所有在开始插入的元素最终都要被删除掉。
线性表描述
字典可以保存在线性序列(e1, e2,⋯)中,其中ei是字典中的元素,其关键字从左到右依次增大。为了适应这种描述方式,可以定义两个类SortedList和Sorted Chain。前者采用公式化描述的线性表,如Linear List类,而后者则采用链表描述,如Chain类。
类定义
成员函数search
成员函数delete
参考资料
关联数组.阿里云..2021-10-29
最新修订时间:2025-10-06 10:48
目录
概述
抽象数据类型描述
参考资料