当前位置: 首页 > 计算机专业 >
数据结构综合设计教程

数据结构综合设计教程

ISBN:9787569733747

主编:蔡茂蓉 杨春明

出版社:西南大学出版社

出版/修订日期:2025年10月

¥ 42.80

简介 目录

本书作为“数据结构综合设计”课程的指定教材,是在完成基础“数据结构”课程学习之后使用的,它旨在与“数据结构”课程相衔接,为学生提供更深入的实践指导。书中所有案例都在QTCreator中实现,适合搭配使用C/C++描述的数据结构教材使用。全书分为三个部分:第一部分为“数据结构综合设计”概览;第二部分介绍了C++编程基础及Ot框架基本知识;第三部分根据“数据结构”课程中线性结构、搜索排序算法、栈与队列应用、树形结构以及图论等核心模块构建教学内容,通过一系列精选案例程序来深化理论知识的理解与应用,从而有效提升读者解决复杂问题时的编程技巧和逻辑思维能力。本书不仅适用于高等院校计算机科学与技术及其相关专业开设的“数据结构综合设计”课程教学之需,同时也适合作为广大学子自学数据结构、增强项目开发能力的重要参考资料。

1 章 概 述…………………………………………………………… 1
1.1 课程特点 ……………………………………………………………………… 1
1.2 综合设计的目标 ……………………………………………………………… 2
1.3 开发工具 ……………………………………………………………………… 2
1.4 教程结构 ……………………………………………………………………… 2
2 C++ 面向对象基础 …………………………………………… 4
2.1 类与对象 ……………………………………………………………………… 4
2.1.1 C++ 类的定义…………………………………………………………… 4
2.1.2 访问权限修饰符………………………………………………………… 7
2.1.3 构造函数和析构函数…………………………………………………… 9
2.2 面向对象程序设计的特点 ………………………………………………… 11
2.2.1 抽象…………………………………………………………………… 11
2.2.2 封装…………………………………………………………………… 11
2.2.3 继承…………………………………………………………………… 14
2.2.4 多态…………………………………………………………………… 16
2.3 友元 ………………………………………………………………………… 20
2.3.1 友元函数……………………………………………………………… 20
2.3.2 友元类………………………………………………………………… 21
练习 ……………………………………………………………………………… 21
3 Qt 基础 ………………………………………………………… 22
3.1 Qt 简介 ……………………………………………………………………… 22
3.1.1 主要特点……………………………………………………………… 22
3.1.2 开发工具……………………………………………………………… 22
3.2 下载与安装 ………………………………………………………………… 23
3.3 第一个 Qt 项目 ……………………………………………………………… 24
3.4 Qt 项目结构 ………………………………………………………………… 28
3.5 第一个 Qt 程序 ……………………………………………………………… 28
3.6 Qt 的信号与槽机制 ………………………………………………………… 29
3.6.1 传统的连接方式……………………………………………………… 30
3.6.2 使用函数指针………………………………………………………… 30
3.6.3 使用 Lambda 表达式 ………………………………………………… 31
3.7 Qt 的控件 …………………………………………………………………… 33
3.7.1 布局管理系列………………………………………………………… 33
3.7.2 按钮系列……………………………………………………………… 34
3.7.3 显示控件系列………………………………………………………… 35
3.7.4 输入控件系列………………………………………………………… 36
3.7.5 容器系列……………………………………………………………… 41
3.8 Qt 的对话框 ………………………………………………………………… 44
3.8.1 文件对话框 ………………………………………………………… 44
3.8.2 输入对话框…………………………………………………………… 46
3.8.3 消息对话框…………………………………………………………… 49
3.9 Qt 的文件操作 ……………………………………………………………… 50
3.9.1 QFile 类操作文件 ………………………………………………… 50
3.9.2 QTextStream 类 ……………………………………………………… 54
3.9.3 QDataStream 类 ……………………………………………………… 54
3.10 Qt Creator 常用快捷键 …………………………………………………… 56
练习 ……………………………………………………………………………… 56
4 线性表、查找和排序的综合应用……………………………… 58
4.1 案例简介 …………………………………………………………………… 58
4.1.1 任务描述……………………………………………………………… 58
4.1.2 实现思路……………………………………………………………… 58
4.2 知识要点 …………………………………………………………………… 59
4.2.1 线性表知识解析……………………………………………………… 59
4.2.2 list 实现学生信息表 ……………………………………………… 61
4.3 代码实现 …………………………………………………………………… 63
4.3.1 全局变量和公共函数………………………………………………… 64
4.3.2 学生类的实现………………………………………………………… 65
4.3.3 系统主界面…………………………………………………………… 68
4.3.4 加载信息……………………………………………………………… 77
4.3.5 添加学生数据………………………………………………………… 78
4.3.6 删除信息……………………………………………………………… 81
4.3.7 修改功能的实现……………………………………………………… 81
4.3.8 查询功能的实现……………………………………………………… 81
4.3.9 排序 ………………………………………………………………… 85
4.3.10 统计功能的实现 …………………………………………………… 89
4.3.11 保存 ………………………………………………………………… 93
练习 ……………………………………………………………………………… 93
5 章 栈和队列………………………………………………………… 95
5.1 案例简介 …………………………………………………………………… 95
5.1.1 任务描述……………………………………………………………… 95
5.1.2 实现思路……………………………………………………………… 95
5.2 知识要点 …………………………………………………………………… 96
5.2.1 栈知识解析…………………………………………………………… 96
5.2.2 队列知识解析………………………………………………………… 99
5.3 实现代码 …………………………………………………………………… 100
5.3.1 优先级的实现………………………………………………………… 100
5.3.2 操作符数字化………………………………………………………… 101
5.3.3 显示表达式…………………………………………………………… 101
5.3.4 计算器上各个按钮的实现代码……………………………………… 101
5.3.5 表达式求值计算……………………………………………………… 105
5.4 运行结果 …………………………………………………………………… 107
练习 ……………………………………………………………………………… 107
6 章 树和二叉树…………………………………………………… 109
6.1 案例简介 …………………………………………………………………… 109
6.1.1 任务描述……………………………………………………………… 109
6.1.2 实现思路……………………………………………………………… 109
6.2 知识要点 …………………………………………………………………… 110
6.2.1 构造哈夫曼树算法…………………………………………………… 110
6.2.2 哈夫曼编码和译码…………………………………………………… 110
6.3 实现代码 …………………………………………………………………… 113
6.3.1 界面设计……………………………………………………………… 113
6.3.2 哈夫曼树的存储结构和类定义……………………………………… 113
6.3.3 功能模块实现………………………………………………………… 116
6.4 测试分析 …………………………………………………………………… 123
练习 ……………………………………………………………………………… 123
7 章 图……………………………………………………………… 125
7.1 案例简介 …………………………………………………………………… 125
7.1.1 任务描述……………………………………………………………… 125
7.1.2 实现思路……………………………………………………………… 126
7.2 知识要点 …………………………………………………………………… 126
7.2.1 基本概念……………………………………………………………… 126
7.2.2 深度优先搜索………………………………………………………… 127
7.2.3 弗洛伊德算法………………………………………………………… 129
7.3 代码实现 …………………………………………………………………… 131
7.3.1 实现 Graph 类………………………………………………………… 132
7.3.2 mainwindow.h 中的代码 …………………………………………… 135
7.3.3 mainwindow.cpp 中的代码…………………………………………… 135
7.4 运行结果 …………………………………………………………………… 140
练习 ……………………………………………………………………………… 142
附录 设计报告要求…………………………………………………… 144
参考文献………………………………………………………………… 145
封面和样张