目录 绪论 习题 模块1线性表——排队叫号器 1.1项目描述 1.2相关知识 1.2.1线性表的定义 1.2.2线性表的基本运算 1.2.3顺序表 1.2.4链表 1.2.5循环链表和双向链表 1.3项目实现 任务1限制队长的排队叫号器 任务2不限制队长的排队叫号器 1.4小结 1.5习题 模块2栈——歌曲播放器 2.1项目描述 2.2相关知识 2.2.1栈的定义 2.2.2栈的基本运算 2.2.3顺序栈 2.2.4链栈 2.3项目实现 任务1限制曲数的歌曲播放器 任务2不限制曲数的歌曲播放器 2.4小结 2.5习题 模块3队列——医院排队叫号系统 3.1项目描述 3.2相关知识 3.2.1队列的定义 3.2.2队列的基本运算 3.2.3顺序队列 3.2.4循环队列 3.2.5链式队列 3.3项目实现 任务1用循环队列实现排队叫号器 任务2用链式队列实现排队叫号器 3.4小结 3.5习题 模块4字符串——身份证信息的提取 4.1项目描述 4.2相关知识 4.2.1串的定义 4.2.2串的基本运算 4.2.3顺序串 4.2.4串的模式匹配算法 4.2.5链表串 4.3项目实现 4.4小结 4.5习题 模块5数组与矩阵——图片压缩小软件 5.1项目描述 5.2相关知识 5.2.1数组的定义 5.2.2数组的顺序存储结构 5.2.3特殊矩阵的压缩存储 5.2.4稀疏矩阵 5.3项目实现 5.4小结 5.5习题 模块6树——哈夫曼编码 6.1项目描述 6.2相关知识 6.2.1一般树 6.2.2二叉树 6.2.3二叉树的遍历 6.2.4树、森林与二叉树的转换 6.2.5二叉树的应用——哈夫曼树 6.3项目实现 6.4小结 6.5习题 模块7图——最短地铁乘坐线路小软件 7.1项目描述 7.2相关知识 7.2.1图的基本概念 7.2.2图的存储结构 7.2.3图的遍历 7.2.4最小生成树 7.2.5最短路径 7.2.6拓扑排序 7.3项目实现 7.4小结 7.5习题 模块8查找算法——查找书籍小软件 8.1项目描述 8.2相关知识 8.2.1静态查找 8.2.2动态查找 8.2.3哈希表的查找 8.3项目实现 8.4小结 8.5习题 模块9排序算法——排序小软件 9.1项目描述 9.2相关知识 9.2.1插入排序 9.2.2交换排序 9.2.3选择排序 9.2.5动手实践 9.2.6基数排序 9.3项目实现 9.4小结 9.5习题 参考文献