数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材

数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
殷人昆 著



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-22

类似图书 点击查看全场最低价

图书介绍

出版社: 清华大学出版社
ISBN:9787302465126
版次:2
商品编码:12290572
包装:平装
开本:16开
出版时间:2017-12-01
用纸:胶版纸
页数:886
字数:1372000


相关图书





图书描述

内容简介

  本书是清华大学出版社出版的《数据结构(C语言版)》(第2版)的配套教材,对“数据结构”课程常用习题进行了解析,对许多不易通过自学理解的概念和知识做了深入讲解,并针对“数据结构”课程的学习给出了指导性建议。本书覆盖了数据结构与算法的主要知识点,共分为8章,包括数据结构绪论,线性表,栈和队列,多维数组、字符串与广义表,树与二叉树,图,查找以及排序。每章划分为多个知识点,首先给出知识点提要,归纳有关要点和容易忽略的细节;然后给出选择题、判断题、简答题和算法题4种题型的典型习题。全书的题量为2840题。
  本书既可以作为大学计算机科学与技术、软件工程等专业的本科生学习“数据结构”课程的辅助教材,也可供考研人员自学参考。

作者简介

  殷人昆,清华大学计算机系教授,1985年赴日本国东京理科大学做访问学者,研究方向为软件工程过程的质量管理和软件产品的质量评价。主要教学工作为计算机系大学本科“数据结构”、“软件工程”和研究生“软件工程设计与技术”、“软件项目管理”课程负责人,主持教育部-微软精品课程“数据结构”的建设。曾与人合作或单独编写和出版教材20余部,其中,《数据结构》教材被评为教育部普通高等教育“十一五”国家级规划教材,并于2005年获“北京市精品教材”。曾在核心刊物和专业会议发表论文多篇,并参加或主持多项科研项目。

目录

数据结构精讲与习题详解(C语言版)(第2版)目录目录

第1章数据结构绪论1

1.1数据结构的概念及分类1

1.1.1知识点提要1

1.1.2选择题3

1.1.3判断题4

1.1.4简答题5

1.1.5算法题8

1.2算法设计与算法分析10

1.2.1知识点提要10

1.2.2选择题13

1.2.3判断题17

1.2.4简答题18

1.2.5算法题25

第2章线性表30

2.1线性表的概念30

2.1.1知识点提要30

2.1.2选择题31

2.1.3判断题32

2.1.4简答题32

2.1.5算法题33

2.2顺序表34

2.2.1知识点提要34

2.2.2选择题36

2.2.3判断题37

2.2.4简答题38

2.2.5算法题39

2.3线性表的链接存储表示49

2.3.1知识点提要49

2.3.2选择题51

2.3.3判断题55

2.3.4简答题56

2.3.5算法题57

2.4两种存储表示的比较87

2.4.1知识点提要87

2.4.2选择题88

2.4.3判断题89

2.4.4简答题90

2.4.5算法题91

2.5线性表的应用94

2.5.1知识点提要94

2.5.2选择题97

2.5.3判断题98

2.5.4简答题98

2.5.5算法题100

第3章栈和队列119

3.1栈119

3.1.1知识点提要119

3.1.2选择题122

3.1.3判断题126

3.1.4简答题126

3.1.5算法题131

3.2队列138

3.2.1知识点提要138

3.2.2选择题142

3.2.3判断题145

3.2.4简答题145

3.2.5算法题150

3.3栈与队列的应用160

3.3.1知识点提要160

3.3.2选择题161

3.3.3判断题162

3.3.4简答题163

3.3.5算法题168

3.4栈与递归188

3.4.1知识点提要188

3.4.2选择题190

3.4.3判断题192

3.4.4简答题193

3.4.5算法题196

第4章多维数组、字符串与广义表211

4.1多维数组211

4.1.1知识点提要211

4.1.2选择题213

4.1.3判断题215

4.1.4简答题215

4.1.5算法题218

4.2特殊矩阵与稀疏矩阵242

4.2.1知识点提要242

4.2.2选择题244

4.2.3判断题246

4.2.4简答题247

4.2.5算法题257

4.3字符串272

4.3.1知识点提要272

4.3.2选择题275

4.3.3判断题277

4.3.4简答题278

4.3.5算法题282

4.4广义表298

4.4.1知识点提要298

4.4.2选择题299

4.4.2判断题300

4.4.3简答题301

4.4.4算法题305

第5章树与二叉树317

5.1树的基本概念317

5.1.1知识点提要317

5.1.2选择题319

5.1.3判断题320

5.1.4简答题321

5.1.5算法题322

5.2二叉树及其存储表示323

5.2.1知识点提要323

5.2.2选择题326

5.2.3判断题329

5.2.4简答题330

5.2.5算法题334

5.3二叉树的遍历339

5.3.1知识点提要339

5.3.2选择题342

5.3.3判断题346

5.3.4简答题347

5.3.5算法题357

5.4线索二叉树396

5.4.1知识点提要396

5.4.2选择题397

5.4.3判断题400

5.4.4简答题400

5.4.5算法题402

5.5树与森林的存储与遍历412

5.5.1知识点提要412

5.5.2选择题415

5.5.3判断题417

5.5.4简答题418

5.5.5算法题423

5.6Huffman树439

5.6.1知识点提要439

5.6.2选择题442

5.6.3判断题443

5.6.4简答题444

5.6.5算法题449

5.7堆453

5.7.1知识点提要453

5.7.2选择题456

5.7.3判断题457

5.7.4简答题457

5.7.5算法题460

5.8并查集466

5.8.1知识点提要466

5.8.2选择题468

5.8.3判断题469

5.8.4简答题469

5.8.5算法题471

第6章图473

6.1图的基本概念473

6.1.1知识点提要473

6.1.2选择题474

6.1.3判断题476

6.1.4简答题477

6.1.5算法题481

6.2图的存储表示482

6.2.1知识点提要482

6.2.2选择题487

6.2.3判断题489

6.2.4简答题490

6.2.5算法题496

6.3图的遍历517

6.3.1知识点提要517

6.3.2选择题519

6.3.3判断题521

6.3.4简答题522

6.3.5算法题528

6.4最小生成树556

6.4.1知识点提要556

6.4.2选择题557

6.4.3判断题559

6.4.4简答题559

6.4.5算法题568

6.5最短路径577

6.5.1知识点提要577

6.5.2选择题579

6.5.3判断题580

6.5.4简答题580

6.5.5算法题585

6.6拓扑排序和关键路径597

6.6.1知识点提要597

6.6.2选择题600

6.6.3判断题602

6.6.4简答题603

6.6.5算法题609

第7章查找617

7.1查找的概念与简单查找方法617

7.1.1知识点提要617

7.1.2选择题622

7.1.3判断题626

7.1.4简答题626

7.1.5算法题637

7.2二叉查找树647

7.2.1知识点提要647

7.2.2选择题650

7.2.3判断题652

7.2.4简答题653

7.2.5算法题658

7.3AVL树672

7.3.1知识点提要672

7.3.2选择题676

7.3.3判断题678

7.3.4简答题679

7.3.5算法题684

7.4B树与B+树691

7.4.1知识点提要691

7.4.2选择题696

7.2.3判断题699

7.4.4简答题699

7.4.5算法题709

7.5散列法715

7.5.1知识点提要715

7.5.2选择题720

7.5.3判断题724

7.5.4简答题725

7.5.5算法题734

第8章排序746

8.1排序的概念746

8.1.1知识点提要746

8.1.2选择题748

8.1.3判断题749

8.1.4简答题749

8.1.5算法题751

8.2插入排序752

8.2.1知识点提要752

8.2.2选择题754

8.2.3判断题756

8.2.4简答题756

8.2.5算法题761

8.3交换排序767

8.3.1知识点提要767

8.3.2选择题769

8.3.3判断题772

8.3.4简答题772

8.3.5算法题779

8.4选择排序794

8.4.1知识点提要794

8.4.2选择题796

8.4.3判断题798

8.4.4简答题798

8.4.5算法题804

8.5归并排序810

8.5.1知识点提要810

8.5.2选择题811

8.5.3判断题812

8.5.4简答题812

8.5.5算法题815

8.6桶排序823

8.6.1知识点提要823

8.6.2选择题827

8.6.3判断题827

8.6.4简答题828

8.6.5算法题829

8.7内排序方法的比较834

8.7.1知识点提要834

8.7.2选择题836

8.7.3判断题838

8.7.4简答题839

8.7.5算法题842

8.8外排序847

8.8.1知识点提要847

8.8.2选择题854

8.8.3判断题856

8.8.4简答题857

8.8.5算法题874

参考文献887


精彩书摘

  第3章栈 和 队 列〖1〗本章的知识结构图栈和队列的知识结构图如图3��1所示。本章的主要知识点有六个,即栈的概念与存储表示、队列的概念与存储表示、栈的应用、队列的应用、栈和递归、特殊队列(包括双端队列和优先级队列)。
  图3��1栈和队列的知识结构图
  3.1栈〖*4/5〗3.1.1知识点提要1. 栈的定义及基本运算
  (1) 栈(stack)可定义为只允许在表的末端进行插入和删除的线性表。允许插入和删除的一端叫做栈顶(top),而不允许插入和删除的另一端叫做栈底(bottom)。当栈中没有任何元素时则成为空栈。
  (2) 栈只能通过栈顶进行访问,故栈叫做后进先出(Last In First Out,LIFO)或先进后出(First In Last Out,FILO)的线性表。
  (3) 栈的基本运算包括以下5种:
  �r 栈初始化void initStack (Stack& S): 创建一个空栈S并使之初始化。
  �r 判栈空否int StackEmpty (Stack& S): 当栈S为空时函数返回1,否则返回0。
  �r 进栈int Push (Stack& S,type x): 当栈S未满时,函数将元素x加入并使之成为新的栈顶。若操作成功,则函数返回1,否则函数返回0。
  �r 出栈int Pop (Stack& S,type& x): 当栈S非空时,函数将栈顶元素从栈中退出并通过引用参数x返回退出元素的值。若操作成功,则函数返回1,否则函数返回0。
  �r 读栈顶元素int getTop (Stack& S,type& x): 当栈S非空时,函数将通过引用参数x返回栈顶元素的值(但不退出)。若操作成功,则函数返回1,否则函数返回0。
  利用上述5种基本运算,可以实现基于栈结构的应用问题的求解。
  注意,栈操作Pop(S,x)与getTop(S,x)是有区别的。前者退出栈顶的元素;后者仅复制出一份栈顶元素,栈中元素个数不发生变化。
  2. 栈的混洗(shuffle)
  (1) 当一串元素通过栈时,出栈元素的次序如何排列,与进栈和出栈操作的排列组合有关。如果每个元素进栈后立即出栈,所有出栈元素的排列与进栈顺序完全相同;如果所有元素都进栈后才开始出栈,所有出栈元素的排列与进栈顺序完全颠倒。
  (2) 栈的进出规则: 利用铁路调车轨道的栈式结构分析,当列车车厢按照1,2,…,n的编号进栈时,可能的不同出栈序列数目可利用catalan函数算出: 1n+1Cn2n=1n+1×(2n)!n!×n!3. 栈的顺序存储结构
  栈的顺序存储,简称顺序栈,是指用一组地址连续的存储单元依次存储栈中元素,同时附设指针top指示栈顶元素。
  (1) 顺序栈的存储分配有两种:
  ① 顺序栈的静态存储分配,它的存储数组采用静态方式定义。#define maxSize 100
  typedef char SElemType;
  typedef struct {
  SElemType elem[maxSize];
  int top;
  } SeqStack;顺序栈的静态存储结构预先定义或申请栈的存储空间,一旦装满就不能扩充。因此在顺序栈中,当一个元素进栈之前,需要判断是否栈满,若栈满,则元素进栈会发生上溢现象。
  ② 顺序栈的动态存储分配,它的存储数组在使用时动态存储分配,其好处是一旦栈满可以扩充。顺序栈的动态存储结构定义如下(保存于SeqStack.h): #define initSize 100
  typedef char SElemType;
  typedef struct {
  SElemType �砮lem;
  int maxSize,top;
  } SeqStack;在初创基于动态存储分配的顺序栈时必须立即为它动态分配存储空间: elem=(SElemType��)malloc(initSize�硈izeof(SELemType))并以initSize作为最初的maxSize。在扩充时需要申请一个新的具有2×maxSize的连续的存储空间取代原来的存储空间,把原来存储空间内存放的所有栈元素转移到新的存储空间后释放原来的存储空间,再让elem指针指示新的存储空间,并让maxSize=2×maxSize。
  (2) 进栈和出栈的处理。有两种进栈和出栈的处理方式。
  �r 先让栈顶指针进一,再按栈顶指针所指位置把进栈元素加入。这样,栈顶是最后加入元素所处的位置。它的示意图参看图3��2。
  图3��2顺序栈的示意图之一
  按照这种处理方式,在使用栈之前需要做初始化工作,即置空栈。因为一维数组下标从0开始,栈空时应该top<0,因此空栈时栈顶指针top=-1。
  �r 先按栈顶指针所指位置把进栈元素加入,再把栈顶指针加一。这样,栈顶是最后加入元素的下一位置,是下一次加入元素的位置。它的示意图参看图3��3。
  图3��3顺序栈的示意图之二
  按照这种处理方式,空栈时应该top=0。本书采用前一种处理方式。
  (3) 两个顺序栈共享一个存储空间。
  利用栈底位置相对不变的特性,可让两个顺序栈共享一个一维存储空间,以调剂余缺,实现方法是: 将两个栈的栈底位置分别设在存储空间的两端,让它们的栈顶各自向中间延伸,如图3��4所示。这样,两个栈的空间就可以相互调剂,只有在整个存储空间被占满时才发生上溢,这样产生上溢的概率要小得多。
  图3��4两个栈共享一个存储空间的结构示意图
  若设0号栈的栈底指针为b[0],栈顶指针为t[0];1号栈的栈底指针为b[1],栈顶指针为t[1],则各栈初始化的条件为b[0]=t[0]=-1,b[1]=t[1]=maxSize;各栈判栈空的条件为t[0]==b[0] 和t[1]==b[1]。判栈满的条件为t[0]+1==t[1],注意,绝对不是t[0]+t[1]==maxSize。
  4. 栈的链式存储结构
  ……

前言/序言

  数据结构精讲与习题详解(C语言版)(第2版)第2版前言第2版前言
  本书是《数据结构精讲与习题详解》的第2版,与前一版相比,它做了如下改变:
  (1) 对第1版参考答案中存在的代码错误和低效之处进行了全面修改。
  (2) 局部改变了第1版的章节编排。将“树与二叉树”与“树的应用”合并为一章,将“内排序”与“外排序”合并为一章,将“二叉查找(排序)树”与“AVL树”调整到第7章“查找”中。
  (3) 题量从1250 题增加到2840题,同时将“疑难点辨析”改为“判断题”,部分调整到“简答题”中。这是考虑到“判断题”更能够激发读者的深度思考。
  (4) “知识点提要”部分没有如同主教材那样系统、详细地讨论有关知识点的细节,而是从复习的角度归纳了知识点的要点和容易忽略的细节。因此,如果要系统地学习数据结构的主要概念,还是应当以主教材为主,本书为辅,配合学习。
  (5) 由于篇幅原因,“选择题”和“判断题”部分仅给出答案,删去了解析。因此,这两部分对于读者来说更需要“研读”而不应“走马观花”,不但要知其然,而且要知其所以然。对于“选择题”,首先要了解相关知识点的主要概念,如果有把握,可直接确定正确的选项;如果没有把握,可采用排除法,利用自己掌握的知 数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 下载 mobi epub pdf txt 电子书 格式

数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 下载 mobi pdf epub txt 电子书 格式 2024

数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

评分

评分

评分

评分

评分

评分

评分

评分

类似图书 点击查看全场最低价

数据结构精讲与习题详解(C语言版 第2版)/清华大学计算机系列教材 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.teaonline.club All Rights Reserved. 图书大百科 版权所有