稀疏数组C语言实现,数据结构:C语言版

本书详细介绍了数据结构的基础知识,包括抽象数据类型、C语言数据类型、数据结构和算法的关系。深入讲解了数组、字符串、链表、栈、队列、递归、二叉树、图等数据结构的表示和操作。还涵盖了查找和排序方法,以及面向对象的程序设计与C++中的数据结构实现。内容涵盖从基础到高级,适合计算机科学学生和程序员学习。
摘要由CSDN通过智能技术生成

第1章 C语言与数据结构

1—1 数据结构的基础

l—2 数据结构的抽象表示

1—2—1 抽象化

1—2—2 C语言的数据类型

1—2—3 数据结构抽象化

1—3 数据结构和算法

1—4 结构化的程序规划

1—4—1 结构化的重要性

1—4—2 模块化

1—4—3 自顶向下的设计方法

1—5 设计风格

1—5—1 使用有意义的变量和函数名称

1—5—2 程序注释

1—5—3 使用局部变量

1—5—4 函数间的参数传递

1—5—5 函数的模块化

1—6 习题

第2章 数组与字符串

2—1 内存静态分配

2—2 一维数组

2—3 一维数组的访问

2—4 一维数组的遍历

2—5 二维数组

2—6 数组的表示法

2—6—l 以行为主或以列为主的表示方法

2—6—2 指针数组的表示法

2—7 稀疏矩阵

2—8 字符串的存储方式

2—9 字符串的基本处理

2—9—1 字符串的拷贝

2—9—2 字符串的连接

2—9—3 字符串的替换

2—9—4 字符串的插入

2—9—5 字符串的删除

2—9—6 字符串的比较

2—9—7 提取子字符串

2—10 字符串的高级处理

2—10—1 字符串的对比

2—10—2 字符串的分割

2—11 习题

第3章 基本链表

3—1 内存动态分配

3—1—1 函数malloc()

3—1—2 函数free()

3—2 链表的创建

3—2—1 动态数据结构的声明

3—2—2 内存的分配

3—2—3 基本链表的创建

3—3 链表的遍历

3—4 链表的链接

3—5 链表内结点的删除

3—6 释放链表的内存空间

3—7 链表内结点的插入

3—8 链表结构的反转

3—9 使用头结点的链表

3—10 习题

第4章 复杂链表

4—1 循环链表结构

4—1—1 循环链表的创建

4—1—2 循环链表内结点的插入

4—1—3 循环链表内结点的删除

4—1—4 再论循环链表的插入和删除操作

4—1—5 内存管理

4—2 含头结点的循环链表结构

4—2—1 处理多项式

4—2—2 再论稀疏数组表示法

4—3 双向链表结构

4—3—1 双向链表的创建

4—3—2 双向链表内结点的插入

4—3—3 双向链表内结点的删除

4—4 循环双向链表结构

4—5 含头结点的循环双向链表结构

4—6 习题

第5章 栈与队列

5—1 使用数组结构创建栈

5—2 使用链表创建栈

5—3 表达式表示法的种类

5—4 中序表达式的计算

5—5 前序表达式的计算

5—6 后序表达式的计算

5—7 中序表达式转成后序表达式

5—8 使用栈做回溯控制

5—9 队列的应用

5—10 使用数组结构创建队列

5—11 循环队列

5—12 使用链表创建队列

5—13 双队列

5—13—1 输入限制性双队列

5—13—2 输出限制性双队列

5—14 习题

第6章 递归函数

6—1 递归的基础

6—2 递归函数的内部处理过程

6—2—l 一般函数的调用

6—2—2 递归函数的调用

6—2—3 递归函数的实际处理过程

6—3 递归的链表创建和输出

6—4 汉诺塔问题

6—5 走迷宫问题

6—6 N皇后问题

6—7 习题

第7章 二叉树

7—1 树的基本概念

7—2 二叉树的基本概念

7—3 二叉树的表示法

7—3—1 二叉树数组表示法

7—3—2 二叉树结构数组表示法

7—3—3 二叉树链表结构表示法

7—4 二叉树的遍历

7—4—1 中序遍历方式

7—4—2 前序遍历方式

7—4—3 后序遍历方式

7—5 二叉树的递归创建法

7—6 二叉树的查找方法

7—7 二叉树内结点的删除

7—8 二叉树的复制

7—9 线索二叉树

7—10 树的二叉树表示法

7—11 树的应用:处理表达式

7—12 习题

第8章 图

8—1 图的基础

8—2 图的表示法

8—2—1 邻接矩阵表示法

8—2—2 邻接表表示法

8—2—3 邻接多重表表示法

8—3 图的遍历

8—3—1 深度优先搜索法

8—3—2 广度优先搜索法

8—4 图的路径表示法

8—5 最短路径的求法

8—5—1 一个顶点到多顶点

8—5—2 各顶点到其他顶点的求法

8—6 图的拓扑排序

8—7 生成树

8—8 最小生成树

8—9 习题

第9章 查找方法

9—1 程序计数的原理

9—2 函数O()———BigOh

9—3 查找的基础

9—4 顺序查找法

9—5 折半查找法

9—6 斐波纳契查找法

9—7 插补查找法

9—8 二叉查找树查找法

9—9 散列查找法

9—9—1 散列函数

9—9—2 线性探测法

9—9—3 拉链法

9—10 习题

第10章 内部排序法

10—1 排序的基础

10—2 冒泡排序法

10—3 选择排序法

10—4 插入排序法

10—5 希尔排序法

10—6 快速排序法

10—7 二叉查找树排序法

10—8 堆排序法

10—9 习题

第11章 外部排序法

11—1 外部排序法

11—2 归并排序法

11—3 直接归并排序法

11—4 文件的快速排序法

11—5 习题

第12章 00P与数据结构

12—1 00P面向对象的基础

12—1—1 对象的基本概念

12—1—2 面向对象的程序分析

12—1—3 面向对象程序语言

12—2 C++的类与对象

12—2—1 C++的标准输出与输入

12—2—2 类与对象

12—2—3 类的构造函数

12—2—4 类的析构函数

12—3 字符串类实现

12—4 链表类实现

12—5 栈类实现

12—5—1 数组栈类实现

12—5—2 链表栈类实现

12—6 二叉树类实现

12—7 习题

附录A 常用字符与ASCII代码对照表

附录B 习题解答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值