数据结构

出版时间:2005-8  出版社:科学出版社  作者:王国钧 编  页数:153  字数:376000  
Tag标签:无  

前言

  数据结构是计算机科学的算法理论基础和软件设计的技术基础,主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现.因此,数据结构不仅是计算机专业的一门核心课程,而且也是其他理工科专业的热门选修课。学会分析研究计算机加工的数据对象的特性,能够选择合适的数据结构、存储结构和相应的算法并加以实现,是计算机工作者和其他科技工作者不可缺少的知识和能力。  本书介绍了各种常用的数据结构和它们在计算机中的存储表示,讨论了在这些数据结构上的基本运算(操作)和实际的执行算法,简要介绍了算法的时间分析和空间分析的技巧,并阐述了各种常用数据结构内涵的逻辑关系。  本书共9章.第1章为概论;第2章至第4章分别介绍了线性表、栈、队列和串等几种基本的数据结构,它们都属于线性结构;第5章至第7章分别介绍了多维数组、广义表、树和图等非线性结构;第8章和第9章分别介绍了查找和排序,它们都是数据处理时需要广泛使用的技术。  本书深入浅出地讲解了理论知识,同时又重视实践。每一章的开头都配有本章要点和本章学习目标,每章最后配有本章小结和大量不同类型的习题。书中配有大量的例题和详尽的注释,自始至终使用C语言来描述算法和数据结构,各章的程序都在Turbo C或Visual C++6.0中调试通过,以方便读者在计算机上进行实践,有助于理解算法的实质和基本思想。  本书可作为计算机专业本科学生的教材,其内容可以讲授一个学期。将本书用作其他相关专业本科学生的教材,或用作计算机专业专科学生的教材,或用作成人教育学员的教材时,建议讲授教师根据实际情况适当删减教材内容(带“*”部分)。在整个教学过程中,除了理论教学以外,上机实践是一个不可缺少的环节,与本书配套的《数据结构实践教程》也将由科学出版社出版。  另外,本书也可供从事计算机应用的工程技术人员参考,读者只需掌握C语言编程的基本技术就可以学习本书。  参加本书编写工作的有王国钧、唐国民、苏晓萍、马瑜、严华云、侯向华、吴红庆、李树东、颜鸿林、吴杰宏等,全书最后由王国钧统稿。

内容概要

本书是为数据结构课程编写的教材,也可以作为学习数据结构及其算法的C语言程序设计的参考书。    本书系统地介绍了各种常用的数据结构与算法方面的基本知识。全书共9章。第1章为概论,引入了数据结构与算法的一些基本概念,是全书的综述;第2章至第7章分别介绍了线性表、栈、队列、串、 多维数组、广义表、树和图等几种基本的数据结构;第8章和第9章分别介绍了查找和排序的方法,它们都是数据处理时需要广泛使用的技术。    本书可作为高等院校计算机及相关专业本科生的教材,也可作为专科和成人教育的教材,还可供从事计算机应用的科技人员参考。与本书配套的《数据结构实验教程》也将由科学出版社出版。

书籍目录

第1章  绪论  1.1  什么是数据结构    1.1.1  数据和数据元素    1.1.2  数据对象和数据类型    1.1.3  数据结构  1.2  为什么要学习数据结构    1.2.1  学习数据结构的重要性    1.2.2  数据结构的应用举例  1.3  算法和算法分析    1.3.1  什么是算法    1.3.2  算法的描述和设计    1.3.3  算法分析  本章小结  习题第2章  线性表  2.1  线性表的基本概念    2.1.1  线性表的定义    2.1.2  线性表的基本操作  2.2  线性表的顺序存储    2.2.1  顺序表    2.2.2  顺序表的基本操作    2.2.3  一个完整的例子(1)  1.3  线性表的链式存储    2.3.1  单链表的基本概念    2.3.2  单链表的基本操作    2.3.3  一个完整的例子(2)    2.3.4  循环链表    2.3.5  双向链表    2.3.6  双向循环链表    2.3.7  静态链表  2.4  线性表顺序存储与链式存储的比较  2.5  线性表的应用    2.5.1  约瑟夫问题    2.5.2  多项式加法    2.5.3  电文加密  本章小结  习题第3章  栈和队列  3.1  栈    3.1.1  栈的定义与基本操作    3.1.2  顺序栈的存储结构和操作的实现    3.1.3  链栈的存储结构和操作的实现  3.2  栈的应用    3.2.1  数制转换    3.2.2  括号匹配问题    3.2.3  子程序的调用    3.2.4  利用一个栈逆置一个带头结点的单链表  3.3  队列    3.3.1  队列的定义与基本操作    3.3.2  链队列的存储结构和操作的实现    3.3.3  顺序队列的存储结构和操作的实现    3.4  队列的应用    3.4.1  打印杨辉三角形    3.4.2  迷宫问题:寻找一条从迷宫入口到出口的最短路径  本章小结  习题第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  模式匹配的改进算法——KMP算法  本章小结  习题第5章  多维数组和广义表  5.1  多维数组    5.1.1  多维数组的定义    5.1.2  数组的存储结构 ……第6章  树和二叉树第7章  图第8章  查找第9章  排序主要参考文献

章节摘录

  要求编写一个电话号码的查询程序。对于任意给出的一个姓名,如果该人留有电话号码,那么就找出他的电话号码;否则就指出该人没有电话号码。要解决此问题,首先应构造一张电话号码登记表,表中的每个结点存放姓名和电话号码两个数据项。设计的查找算法取决于该表的结构及存储方式。第一种算法是将表中结点顺序地存储在计算机中,查找时从头开始依次核对姓名,若找到正确的姓名则可获得其电话号码,若找遍整个表均无所找的姓名,则表示该人无电话号码。此算法对于一个人数不多的单位是可行的,但对一个大单位或城市来说是不实用的。第二种算法是将电话号码登记表按姓氏排序,另外构造一张姓氏索引表,存储结构如图1.2所示。查找时首先在索引表中核对姓氏,然后根据索引表中的地址到电话号码登记表中查对姓名,注意这时已经不需要查找其他不同姓氏的名字了.相比之下,在新的结构上产生的第二种查找算法比第一种算法更为有效。在第8章中将进一步讨论查找策略。  假设需要在n个城市之间铺设光缆,并且任意两个城市之间都可以铺设。大家知道,在n个城市之间只要铺设n-1条光缆,即能将这n个城市连成网络。只是由于地理位置的不同,所需经费也不同,问题是采用什么样的设计方案能使总投资最省。这个问题的数学模型是如图1.3(a)所示的“图”,图中顶点表示城市,顶点之间的连线及其上面的数值表示可以铺设的光缆及所需经费。求解该问题的算法为:在可以铺设的n条光缆中选取n一1条,使得既能连通n个城市,又使总投资最省。实际上,这是一个“求图的最小生成树”的问题,见图1.3(b),将在第7章中进一步讨论。  ……

图书封面

图书标签Tags

评论、评分、阅读与下载


    数据结构 PDF格式下载


用户评论 (总计1条)

 
 

  •   不错 入门合适
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7