算法(第 4 版)
Robert Sedgewick, Kevin Wayne
ACM Fellow, ACM 杰出教育家
2178 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
时长 04:02
时长 01:33:37
课程目录
已完结/共 41 讲
时长 00:58
时长 03:10
时长 05:29
时长 04:02
时长 01:24:35
时长 01:33:37
时长 01:16:16
时长 01:26:27
时长 30:28
时长 36:09
时长 48:57
时长 47:59
时长 54:43
时长 46:00
时长 56:31
时长 56:13
时长 53:55
时长 01:12:09
时长 51:36
时长 55:01
时长 01:35:07
时长 04:45
时长 04:08
时长 47:52
时长 45:42
时长 37:58
时长 01:13:26
时长 15:16
时长 17:22
时长 25:55
时长 14:40
时长 28:01
时长 04:15
时长 03:41
时长 03:52
算法(第 4 版)
15
15
1.0x
00:00/00:00
登录|注册

3.1 符号表

符号表最主要的目的就是将一个和一个联系起来。用例能够将一个键值对插入符号表并希望在之后能够从符号表的所有键值对中按照键直接找到相对应的值。本章会讲解多种构造这样的数据结构的方法,它们不光能够高效地插入查找,还可以进行其他几种方便的操作。要实现符号表,我们首先要定义其背后的数据结构,并指明创建并操作这种数据结构以实现插入、查找等操作所需的算法。
查找在大多数应用程序中都至关重要,许多编程环境也因此将符号表实现为高级的抽象数据结构,包括 Java——我们会在 3.5 节中讨论 Java 的符号表实现。表 3.1.1 给出的例子是在一些典型的应用场景中可能出现的键和值。我们马上会看到一些参考性的用例,3.5 节的目的就是向你展示如何在程序中有效地使用符号表。本书中我们还会在其他算法中使用符号表。
定义。符号表是一种存储键值对的数据结构,支持两种操作:插入(put),即将一组新的键值对存入表中;查找(get),即根据给定的键得到相应的值。
表 3.1.1 典型的符号表应用
应用查找的目的
字典找出单词的释义单词释义
图书索引找出相关的页码术语一串页码
文件共享找到歌曲的下载地址歌曲名计算机 ID
账户管理处理交易账户号码交易详情
网络搜索找出相关网页关键字网页名称
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了符号表的概念、用途以及在不同应用场景中的典型应用。文章提供了简单的泛型符号表API,包括创建符号表、插入键值对、获取键对应的值、删除键值对等操作。此外,还介绍了符号表的一些设计决策,如泛型处理、重复的键处理、空键和空值的规定,以及删除操作的实现方式。强调了符号表在各种应用中的重要性,如字典、图书索引、文件共享、账户管理、网络搜索和编译器等领域的应用。通过这些典型应用的介绍,读者可以更好地理解符号表在实际编程中的作用和意义。此外,还介绍了有序符号表的概念和API,以及对于Comparable键的操作。文章还讨论了符号表的性能问题,特别是在处理大型文本时的性能考量。总体而言,本文通过简洁清晰的语言和具体的示例,为读者提供了对符号表的全面了解和使用指南。文章内容深入浅出,适合对符号表感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《算法(第 4 版)》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部