数据结构与算法应用教程

分类: 图书,计算机/网络,数据库,数据库理论,
作者: 高佳琴主编
出 版 社: 机械工业出版社
出版时间: 2008-7-1字数: 259000版次: 1页数: 162印刷时间: 2008/07/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787111241287包装: 平装内容简介
本书在简要回顾了基本的C程序设计概念的基础上,逐步引入与程序设计相关的算法与数据结构等基本概念,系统地介绍了顺序表、链表、队列与栈、树、图等基本数据结构,以及递归、查找与排序等多种算法。
本书的理论知识点涵盖了“全国计算机等级考试”及“中国计算机技术与软件专业技术资格考试”中程序员级的程序设计及算法基础。全部算法用c语言书写,并配有结构化流程图,结构清晰、重点难点突出、通俗易学,具有较好的可读性与可移植性。
全书共10章,每章都配有丰富的、类型多样的习题,并且提供了体现各主题基本任务的上机实验题。
本书是一本实践性、应用性很强的有关数据结构与常用算法的教材,可作为高职高专软件技术及相关专业的“数据结构”课程教材,对于软件技术从业人员也是一本很好的参考书。
目录
前言
第1章概述
1.1什么是数据结构
1.2基本概念和术语
1.3算法和算法分析
1.3.1算法及其描述
1.3.2算法性能和复杂度分析
1.4c语言基础
1.4.1数组
1.4.2指针
1.4.3结构体类型
1.4.4c程序的调试方法
本章小结
习题一
第2章顺序表
2.1线性表的定义及逻辑结构
2.2线性表的基本操作
2.3线性表的顺序存储结构
2.4顺序表基本操作的实现
2.4.1顺序表的初始化
2.4.2顺序表中元素的插入
2.4.3顺序表中元素的删除
2.4.4顺序表的按值查找
2.5顺序表应用
本章小结
习题二
实验一顺序表应用
第3章链表
3.1单链表
3.1.1单链表的基本概念
3.1.2单链表的数据类型
3.2循环链表
3.3双向链表
3.3.1双向链表的基本概念
3.3.2双向链表的插入与删除的算法
3.4应用举例及分析
本章小结
习题三
实验二链表的应用
第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队列的应用
本章小结
习题四
实验三栈的应用
第5章字符串与多维数组
5.1串
5.1.1串的基本概念
5.1.2串的存储结构
5.1.3串基本操作的实现算法
……
第6章递归
第7章树与二叉树
第8章排序与查找
第9章图
第10章常用算法
附录
参考文献
书摘插图
第3章 链
本章主要介绍线性表的链式存储结构及其特点,基于链表的基本操作的实现。具体介绍了链表的三种形式:单链表、循环链表和双向链表。最后分析了链表的一些典型应用。
本章要点:
1)链表的存储方式。
2)单链表的定义、结构和特点,单链表的插入与删除等算法。
3)循环单链表的结构和特点,以及用循环单链表解决问题的方法。
4)双向链表的定义、结构和特点,相关操作的实现。
本章难点:
1)链表的结构特点。
2)各种链表结构中基本操作的实现方法。
3)链表的应用。
插入和删除元素是线性表的两种最常用的操作,在第2章中介绍了顺序表的插人和删除需要移动大量的元素,影响了运行效率。在具体应用时,为了克服顺序存储带来的一些缺点,可以采用另外一种形式来存储线性表,即链式存储结构。通常把链式存储的线性表简称为链表。链表中数据的逻辑结构和物理存储相互独立,逻辑关系上相邻的元素在物理位置上不一定相邻。
3.1单链表
链表是用一组任意的存储单元来存放线性表的数据元素,这些存储单元可以是连续的,也可以是不连续的。那么如何来反映数据元素之间的逻辑关系呢?指针是用来映射数据元素之间的逻辑关系的途径。
3.1.1单链表的基本概念
链式存储结构中,对线性表的每一个数据元素,都需要用两部分来存储:一部分用于存放数据元素的值,称为数据域;另外一部分用于存放该结点的直接前驱或直接后继结点的地址(指针),称为指针域。……