目录 第1部分基 础 知 识 第1章绪论3 1.1数据结构的基本概念3 1.2算法和算法分析4第2章线性表6 2.1线性表的逻辑结构6 2.2线性表的顺序存储结构7 2.3线性表的链式存储结构7第3章栈和队列9 3.1栈9 3.2队列10 3.3优先队列12第4章串13 4.1串类型的定义13 4.2字符串模式匹配算法13第5章数组和广义表16 5.1数组16 5.2矩阵17 5.3广义表19第6章树和二叉树22 6.1树的基本概念22 6.2二叉树23 6.3二叉树遍历25 6.4线索二叉树26 6.5树和森林的实现27 6.6哈夫曼树与哈夫曼编码32 6.7树的计数33第7章图35 7.1图的定义和术语35 7.2图的存储表示38 7.3图的遍历40 7.4连通无向网的最小代价生成树40 7.5有向无环图及应用41 7.6最短路径41第8章查找43 8.1查找的基本概念43 8.2静态查找表43 8.3动态查找表43 8.4哈希表47第9章排序50 9.1概述50 9.2插入排序51 9.3交换排序51 9.4选择排序51 9.5归并排序52 9.6基数排序52 9.7外部排序53 第10章文件55 10.1主存储器和辅助存储器55 10.2各种常用文件结构55 第11章算法设计与分析56 11.1算法设计56 11.2算法分析58 第2部分实验 实验1石头、剪刀、布61 实验221点70 实验3不带头节点形式的单链表80 实验4任意大非负整数的任意大非负整数次方93 实验5病人就医管理102 实验6利用后缀表达式计算中缀表达式的值107 实验7文本串的加密115 实验8改造串类120 实验9螺旋方阵130 实验10引用数使用空间表法广义表存储结构134 实验11用二叉树表示表达式147 实验12改进哈夫曼树类153 实验13求最小生成树的Kruskal的算法改进161 实验14图的根顶点166 实验15链地址法处理冲突的哈希表170 实验16字符统计177 实验17改造快速排序算法181实验18改造基数排序算法186 实验19学生基本信息管理193 实验20电话号码的查找205 实验21农夫过河问题216 实验22n皇后问题225 第3部分课 程 设 计 项目1算术表达式求值233 项目2停车场管理系统237 项目3电话客户服务模拟器244 项目4简单文本编辑器250项目5压缩软件260 项目6排课软件271 项目7公园导游系统282 项目8理论计算机科学家族谱的文档/视图模式288 项目9动物游戏296 项目10简单个人图书管理系统302 项目11词典变位词检索系统311 参考文献316 附录A本书配套软件包318 附录B实验报告格式324 附录C课程设计报告格式325 附录D流行C++开发环境的使用方法326