绪论 1
第1篇 程序设计语言篇 8
第1章 程序设计数据类型及其运算 8
1.1 编写和运行程序 8
1.2 计算机中的数据 12
1.3 数据的键盘输入 16
1.4 数据处理与运算 18
1.5 数据的屏幕输出 24
1.6 数据的永久保存 26
1.7 任务实现 29
1.8 本章小结 30
习题1 31
第2章 结构化程序设计的3种结构 32
2.1 顺序结构 32
2.2 条件结构 32
2.3 循环结构 39
2.4 任务实现 43
2.5 本章小结 45
习题2 45
第3章 函数 48
3.1 函数的全面认识 48
3.2 函数的定义 48
3.3 函数的声明 50
3.4 函数的调用 50
3.5 变量的性质及作用域 52
3.6 函数的递归调用 53
3.7 任务实现 55
3.8 本章小结 57
习题3 57
第2篇 数据结构基础篇 60
第4章 数组与结构体 60
4.1 数组的概念 60
4.2 一维数组 62
4.3 二维数组 66
4.4 数组作函数参数 69
4.5 字符数组与字符串 75
4.6 结构体类型的定义 84
4.7 结构体变量的定义、初始化和赋值 85
4.8 结构体数组 88
4.9 任务实现 92
4.10 本章小结 95
习题4 95
第5章 顺序存储线性表及其应用 99
5.1 线性表的定义 99
5.2 线性表的顺序表示 99
5.3 顺序线性表的基本操作 101
5.4 顺序线性表的应用 104
5.5 任务实现 113
5.6 本章小结 131
习题5 131
第6章 指针 133
6.1 指针的概念 133
6.2 指针变量 134
6.3 指针与数组 144
6.4 指针与字符串 151
6.5 指针与函数 157
6.6 任务实现 164
6.7 本章小结 173
习题6 174
第7章 链接存储线性表 177
7.1 指针与结构体 178
7.2 动态存储分配 182
7.3 链表的基本概念 185
7.4 链表的建立和输出 189
7.5 链表结点的插入与删除 194
7.6 链接存储结构上的排序 196
7.7 链接存储结构上的查找 200
7.8 任务实现 203
7.9 本章小结 223
习题7 223
第3篇 数据结构提高篇 226
第8章 栈和队列 226
8.1 栈的性质 226
8.2 顺序栈的基本操作 227
8.3 队列的性质 232
8.4 顺序队列的基本操作 233
8.5 任务实现 241
8.6 本章小结 249
习题8 249
第9章 二叉树及其应用 250
9.1 树和二叉树的定义 250
9.2 二叉树的存储结构 252
9.3 二叉树的遍历 256
9.4 二叉排序树 263
9.5 堆 270
9.6 任务实现 274
9.7 本章小结 280
习题9 281
第10章 图及应用 282
10.1 图的基本概念 282
10.2 图的顺序存储及其压缩表示 285
10.3 图的链式存储 291
10.4 图的遍历 296
10.5 最小生成树 300
10.6 最短路径与最短距离 306
10.7 拓扑排序 313
10.8 任务实现 318
10.9 本章小结 328
习题10 328
参考文献 330