数据结构(C语言描述)(高等学校教材·信息管理与信息系统)
分類: 图书,计算机/网络,数据库,数据库理论,
作者: 张瑞军 主编
出 版 社: 清华大学出版社
出版时间: 2009-4-1字数:版次: 1页数: 221印刷时间:开本: 16开印次:纸张:I S B N : 9787302194446包装: 平装内容简介
本书针对信息管理与信息系统、电子商务等非理工专业计算机类学生基础课程掌握较少的特点,以多年教学经验为基础,从读者的角度出发,努力回避复杂的数学定义与推导,用读者熟悉的C语言作为数据结构和算法的描述语言,采用图文并茂的方式通俗易懂地叙述了线性表、栈、队列、串、树、图等各种数据结构的概念及相关算法,介绍了查找、排序、文件等各种算法及数据组织方式。全书共分10章,每章的结尾均有丰富的习题,以利于知识点的巩固。
本书可作为信息管理、电子商务、计算机等专业本科生的教材。
目录
第1章 绪论
1.1 什么是数据结构
1.2 基本概念与术语
1.2.1 数据的逻辑结构
1.2.2 数据的存储结构
1.3 算法
1.3.1 算法的特征
1.3.2 算法设计的要求
1.3.3 时间复杂度
1.3.4 空间复杂度
1.4 习题
第2章 线性表
2.1 线性表的概念及基本操作
2.1.1 线性表的概念
2.1.2 线性表的基本操作
2.2 线性表的顺序存储
2.2.1 线性表的顺序存储结构
2.2.2 线性表的顺序存储结构上的运算
2.3 线性表的链式存储
2.3.1 单链表
2.3.2 单链表上的基本运算
2.3.3 循环链表
2.3.4 双向链表
2.3.5 顺序表与链表的比较
2.4 数组与矩阵
2.4.1 数组的顺序存储及实现
2.4.2 特殊矩阵的压缩存储
2.5 线性表的应用实例
2.6 习题
第3章 栈与队列
3.1 栈
3.1.1 栈的概念与运算
3.1.2 栈的存储方式
3.1.3 栈的应用举例
3.1.4 栈与递归的关系
3.2 队列
3.2.1 队列的概念与运算
3.2.2 队列的存储方式
3.2.3 队列的应用举例
3.3 习题
第4章 串
4.1 串的定义
4.1.1 串的基本概念
4.1.2 串的基本运算
4.2 串的存储结构与运算
4.2.1 串的定长顺序存储
4.2.2 串的堆分配存储
4.2.3 串的块链存储
4.3 串的应用举例
4.3.1 串的模式匹配算法
4.3.2 文本编辑
4.4 习题
第5章 树
5.1 树、森林的基本概念
5.1.1 树的定义
5.1.2 基本术语
5.1.3 树的基本操作
5.2 二叉树
5.2.1 二叉树的定义与基本操作
5.2.2 二叉树的性质
5.2.3 二叉树的存储结构
5.3 二叉树的遍历及应用
5.4 线索二叉树
5.4.1 线索二叉树的存储结构
……
第6章 图
第7章 查找
第8章 内部排序
第9章 外部排序
第10章 文件
参考文献
书摘插图
第2章 线性表
线性表是实际应用中最常见的一种数据结构,也是最简单的一种数据结构。从逻辑结构的角度来看,线性表中各元素之间是一维的、并且有序排列的关系,表中除了第一个元素外,每个元素都有一个直接前驱;除了最后一个元素外,每个元素都有一个直接后继。从存储结构的角度来看,线性表在具体实现的过程中可采用顺序存储结构或链式存储结构。
本章中首先介绍线性表的概念,即线性表的逻辑结构;接下来依次介绍线性表的顺序存储和链式存储两种结构及实现机制,以及在这两种存储结构上针对线性表的各种操作的实现算法,并对其时间和空间复杂度进行分析,其中在顺序存储结构之后将插入有关数组与矩阵的相关知识;最后将针对线性表在实际应用中的作用举一些实例。
2.1 线性表的概念及基本操作
2.1.1 线性表的概念
线性表的逻辑结构是很容易理解的,就好像一条线,上面有若干个结点,如果这条线上面有结点,那么它就是非空线性表;如果没有结点,则它就是一个空表。非空线性表有且只能有一个开始结点和终端结点,其他结点前后只能有一个直接前趋结点和直接后继结点。
线性表由一组具有相同属性的数据元素构成。数据元素的含义广泛,在不同的具体情况下,可以有不同的含义。例如,英文字母表(A,B,C,…,Z)是一个长度为26的线性表,其中的每一个字母就是一个数据元素;一个班级中按照学号顺序排列的学生名单表,其中每个学生就是表中的一个元素;再如,某公司某年的月产值表(3000,3200,3100,…,3250,3150)(单位:万元)是一个长度为12的线性表,其中的每一个数值就是一个数据元素。在一些复杂的线性表中,每一个数据元素又可以由若干个数据项组成,这一点在第1章有过介绍,这里不再赘述。
……