数据结构简明教程(第2版)-微课版
作者:李春葆、蒋林、方颖、喻丹丹、曾平
出版社:清华大学出版社
ISBN:9787302516309
VIP会员免费
(仅需0.8元/天)
¥ 32.18
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
数据结构(C++描述).pdf 评分:
中文名: 数据结构(C++描述) 作者: 金远平 资源格式: PDF 版本: 扫描版 出版社: 清华大学出版社书号: 730210798X发行时间: 2005年7月7日 地区: 大陆 语言: 简体中文 简介: 内容简介 本书系统、全面地论述数据结构的重要内容,包括基本概念和方法、线性表、链表、树、堆结构、图、排序和搜索结构。在充分继承国内外经典教材的合理体系结构和优秀内容的基础上,结合国内实际教学情况编写,内容系统、精炼,且经过优化整合,在深度和广度上有明显增强;突出重点、难点,强调分析问题和解决问题的方法,以及产生这些方法的背景。 书中内容都经过编者深入研究,且在教学实践中反复验证,因而较易理解。本书注重启发创新思维,培养能力;概念准确,逻辑性强;自然引用面向对象设计思想,用c++语言描述算法。 本书适于作为计算机科学与技术、软件工程以及相关专业的教材,也可供从事相关工作的科技与工程人员参考。 目录: 第1章 基本概念和方法 1 1.1 数据结构与软件系统 1 1.2 数据抽象与封装 2 1.3 算法定义 5 1.4 递归算法 6 1.5 性能分析 9 1.5.1 空间复杂性 9 1.5.2 时间复杂性 10 1.5.3 o表示法 14 1.5.4 代价分摊 16 1.5.5 实际可行的复杂性 19 1.6 性能测量 20 1.7 c++中的模板 22 1.8 效率与权衡 24 习题1 24 第2章 线性表 26 2.1 线性表与数组 26 2.2 多项式 27 2.2.1 多项式的表示 28 2.2.2 多项式相加 30 .2.3 稀疏矩阵 31 2.3.1 稀疏矩阵的表示 32 2.3.2 稀疏矩阵的转置 32 2.4 字符串 35 2.4.1 字符串模式匹配的简单算法 36 2.4.2 字符串模式匹配的kmp算法 36 2.4.3 两个字符串的最长公共子序列 39 2.5 栈 41 2.6 队列 44 2.7 迷宫问题 47 2.8 表达式计算 51 2.8.1 表达式 51 2.8.2 后缀表示 51 2.8.3 将中缀转化为后缀 52 2.9 机场模拟 54 习题2 61 第3章 链表 66 3.1 单链表 66 3.1.1 单链表的表示 67 3.1.2 基本操作 68 3.2 可重用链表类 70 3.2.1 用模板定义链表 70 3.2.2 链表游标 71 3.2.3 链表操作 74 3.3 环链表 75 3.4 链式栈和队列 77 3.5 链式多项式 79 3.5.1 多项式表示 79 3.5.2 多项式相加 80 3.5.3 删除多项式 81 3.5.4 环链多项式 82 3.6 等价类 84 3.7 稀疏矩阵的链表实现 87 3.7.1 稀疏矩阵表示 87 3.7.2 输入稀疏矩阵 90 3.7.3 删除稀疏矩阵 91 3.8 双链表 92 3.9 广义表 94 3.9.1 广义表的概念及表示 94 3.9.2 递归算法 96 3.9.3 引用计数、共享与递归表 100 3.10 动态类型与异构表 102 习题3 105 第4章 树 109 4.1 树和森林的概念及其表示 109 4.2 二叉树 111 4.2.1 二叉树定义 111 4.2.2 二叉树的性质 112 4.2.3 二叉树表示 114 4.3 二叉树遍历与树游标 115 4.3.1 中序遍历 116 4.3.2 前序遍历 117 4.3.3 后序遍历 118 4.3.4 中序游标 118 4.3.5 后序游标 120 4.3.6 按层次遍历 121 4.4 满足性问题 122 4.5 线索二叉树 125 4.5.1 线索 125 4.5.2 中序遍历线索二叉树 127 4.5.3 后序遍历线索二叉树 128 4.5.4 将结点插入线索二叉树 131 4.6 选择树 133 4.6.1 胜者树 133 4.6.2 败者树 134 4.7 森林的二叉树表示及遍历 136 4.8 集合表示 137 4.8.1 并查集 137 4.8.2 在等价类问题中的应用 143 4.9 二叉树计数 144 习题4 149 第5章 堆结构 152 5.1 最大堆 152 5.1.1 优先队列与最大堆 152 5.1.2 插入操作 154 5.1.3 删除操作 155 5.2 最小最大堆 156 5.2.1 双端优先队列与最小最大堆 156 5.2.2 插入操作 157 5.2.3 删除最小元素操作 160 5.3 双堆 162 5.3.1 双堆定义 162 5.3.2 插入操作 164 5.3.3 删除最小元素 166 5.4 左偏(leftist)树 168 5.5 二项式堆 172 5.5.1 二项式堆定义 173 5.5.2 插入操作 175 5.5.3 合并操作 175 5.5.4 删除最小元素 175 5.5.5 分析 177 5.6 斐波纳契堆 178 5.6.1 斐波纳契堆定义 178 5.6.2 删除操作 178 5.6.3 key值减少操作 179 5.6.4 瀑布修剪 179 5.6.5 分析 181 习题5 182 第6章 图 185 6.1 图的基本定义 185 6.2 图的表示 188 6.2.1 邻接矩阵 188 6.2.2 邻接表 189 6.2.3 邻接多表 192 6.3 连通图的遍历 194 6.3.1 深度优先搜索 194 6.3.2 广度优先搜索 195 6.3.3 生成树 196 6.4 图的连通性 197 6.4.1 连通分量 197 6.4.2 双连分量 198 6.5 最小代价生成树 201 6.5.1 克鲁斯卡尔算法 201 6.5.2 普瑞姆算法 204 6.6 最短路径和传递闭包 205 6.6.1 边长非负时的单源点到所有终点的最短路径 205 6.6.2 所有顶点对之间的最短路径 209 6.6.3 传递闭包 211 6.7 活动网络 212 6.7.1 aov网络 212 6.7.2 aoe网络 216 习题6 222 第7章 排序 225 7.1 引言 225 7.2 插入排序 226 7.3 希尔(shell)排序 228 7.4 快速排序 230 7.5 归并排序 233 7.5.1 迭代归并排序 233 7.5.2 递归归并排序 236 7.6 堆排序 238 7.7 基数排序 241 7.8 基于链表和映射表排序结果的顺序化 244 7.9 外排序 249 7.9.1 概述 249 7.9.2 k-路归并 251 7.9.3 生成初始归并段 252 7.9.4 归并段的最佳归并和哈夫曼树 256 习题7 259 第8章 查找结构 262 8.1 符号表 262 8.2 二叉查找树 263 8.2.1 二叉查找树定义 263 8.2.2 二叉查找树的查找、插入和删除操作 264 8.2.3 二叉查找树的结合与分裂 266 8.2.4 二叉查找树的性能分析 269 8.2.5 最佳二叉查找树 272 8.3 avl树 278 8.4 2-3树 285 8.4.1 定义与性质 285 8.4.2 2-3树的查找 287 8.4.3 2-3树的插入操作 287 8.4.4 2-3树的删除操作 289 8.5 splay树 292 8.6 b树 297 8.6.1 m叉查找树 297 8.6.2 m叉查找树的查找 299 8.6.3 b树的定义和性质 300 8.6.4 b树的插入操作 302 8.6.5 b树的删除操作 304 8.6.6 b+树 307 8.7 trie 310 8.7.1 trie的定义 310 8.7.2 trie的查找 311 8.7.3 取样策略 312 8.7.4 在trie中插入和删除元素 312 8.8 静态散列 313 8.8.1 散列表 313 8.8.2 散列函数 315 8.8.3 溢出处理 316 8.9 动态散列 320 8.9.1 带目录动态散列 321 8.9.2 无目录动态散列 327 习题8 328 索引 332 参考文献 336
上传时间:2013-01 大小:44.8MB
- 35KB
C++数据结构.pdf
2022-07-11C++数据结构 数据结构 C++ 数据结构 C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另⼀种⽤户⾃定义的可⽤的数据类型,它允许您存储不同类型的数 据项。 结构⽤于表⽰⼀条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性: Title :标题 Author :作者 Subject :类⽬ Book ID :书的 ID 1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 #include<iomanip> 5 #include<cmath> 6 using namespace std; 7 double f(double); 8 double xpoint(double,double); 9 double root(double,double); 10 11 int main(int argc, char** argv) { 12 d
- 4.70MB
数据结构实现(C++版)
2018-11-28内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现
- 21.47MB
数据结构-胡学钢(C++描述)
2018-10-01合肥工业大学数据结构-胡学钢(C++描述),有需要的可以下载
- 34.93MB
数据结构(C++)清华 邓俊辉
2018-05-09高清版,清华大学邓俊辉教授 C++数据结构版本。 高清版,清华大学邓俊辉教授 C++数据结构版本。
- 2.78MB
C_C++数据结构基础.pdf
2020-07-06数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。传智播客C/C++数据结构讲义,分享给大家,希望对各位有所帮助。
- 11.74MB
数据结构C++语言描述
2018-05-11数据结构 C++ 语言描述》.(William Ford).[PDF]希望大家
- 25.29MB
C++数据结构与程序设计共959页.pdf
2022-07-05C++数据结构与程序设计共959页.pdf
- 817KB
数据结构与算法分析C++描述分享.pdf
2022-01-01数据结构与算法分析C++描述分享.pdf
- 12.41MB
数据结构算法与应用-C++语言描述_Sahni著
2014-12-02数据结构算法与应用-C++语言描述_Sahni著,pdf格式,中文版,附源码。
- 5.77MB
数据结构与程序设计(英文版)Data Structures and Program Design in C++ Robert L. Kruse
2017-10-18数据结构与程序设计(英文版)Data Structures and Program Design in C++ Robert L. Kruse 数据结构与程序设计C++语言描述 作 者:(美)克鲁斯
- 23.21MB
数据结构:C++语言描述
2018-11-17圖鈴系列書記,對c++程序員非常有幫助
- 257KB
数据结构(C++版)课后题答案
2011-12-15这个是正宗的数据结构答案 自己本身专业要学这门课,找了好久找齐的 有些题目不是课本上的,是扩展的 可以使用查找功能更容易看课后答案
- 8.81MB
数据结构(C++描述)课后习题答案
2013-05-14数据结构(C++描述) 李根强主编 课后习题答案
- 1.83MB
C++数据结构学习PDF
2022-03-08C++数据结构学习PDF,讲解数据结构相关的知识点
- 2.43MB
C++设计模式.pdf
2010-07-19详细的介绍了GoF的23种模式,同时有相应的C++代码实现。
- 5.77MB
数据结构C++语言描述应用标准摸板库STL第2版附源码.part2.rar
2010-10-23文件超过了20M,所以分成两个压缩包,这是第2个。
- 313KB
数据结构习题解析-面向对象方法和C++语言描述-殷人昆.pdf
2023-04-01。
- 21.25MB
数据结构C.语言描述.应用标准摸板库STL
2011-12-31数据结构C.语言描述.应用标准摸板库STL第2版.pdf )
- 21.25MB
数据结构C++语言描述.应用STL第2版
2008-09-18美河提供数据结构C.语言描述.应用标准摸板库STL第2版.pdf
- 108.89MB
数据结构、算法与应用.C++语言描述.原书第2版
2017-08-11扫描完整版带书签
- 19.24MB
《数据结构(C++语言版)第三版_邓俊辉》
2019-04-11这是《数据结构(C++语言版)第三版_邓俊辉》的pdf高清版本
- 602KB
数据结构各种算法实现(C++模板)
2017-08-02数据结构各种算法实现(C++模板)
- 307KB
c++数据结构与算法实现
2018-09-02matrix.h: Simple matrix class dsexceptions.h: Simple exception classes Fig01_02.cpp: A simple recursive routine with a test program Fig01_03.cpp: An example of infinite recursion Fig01_04.cpp: Recursive routine to print numbers, with a test program Fig01_05.cpp: Simplest IntCell class, with a test program Fig01_06.cpp: IntCell class with a few extras, with a test program IntCell.h: IntCell class interface (Fig 1.7) IntCell.cpp: IntCell class implementation (Fig 1.8) TestIntCell.cpp: IntCell test program (Fig 1.9) (need to compile IntCell.cpp also) Fig01_10.cpp: Illustration of using the vector class Fig01_11.cpp: Dynamically allocating an IntCell object (lame) BuggyIntCell.cpp: Buggy IntCell class implementation (Figs 1.16 and 1.17) Fig01_18.cpp: IntCell class with pointers and Big Five FindMax.cpp: Function template FindMax (Figs 1.19 and 1.20) Fig01_21.cpp: MemoryCell class template without separation Fig01_25.cpp: Using function objects: Case insensitive string comparison LambdaExample.cpp: (Not in the book): rewriting Fig 1.25 with lambdas MaxSumTest.cpp: Various maximum subsequence sum algorithms Fig02_09.cpp: Test program for binary search Fig02_10.cpp: Euclid's algorithm, with a test program Fig02_11.cpp: Recursive exponentiation algorithm, with a test program RemoveEveryOtherItem.cpp: Remove every other item in a collection Vector.h: Vector class List.h: List class BinarySearchTree.h: Binary search tree TestBinarySearchTree.cpp: Test program for binary search tree AvlTree.h: AVL tree TestAvlTree.cpp: Test program for AVL trees mapDemo.cpp: Map demos WordLadder.cpp: Word Ladder Program and Word Changing Utilities SeparateChaining.h: Header file for separate chaining SeparateChaining.cpp: Implementation for separate chaining TestSeparateChaining.cpp: Test program for separate chaining hash tables (need to compile SeparateChaining.cpp also) QuadraticProbing.h: Header file for quadratic probing hash table QuadraticProbing.cpp: Implementation for quadratic probing hash table TestQuadraticProbing.cpp: Test program for quadratic probing hash tables (need to compile QuadraticProbing.cpp also) CuckooHashTable.h: Header file for cuckoo hash table CuckooHashTable.cpp: Implementation for cuckoo hash table TestCuckooHashTable.cpp: Test program for cuckoo hash tables (need to compile CuckooHashTable.cpp also) CaseInsensitiveHashTable.cpp: Case insensitive hash table from STL (Figure 5.23) BinaryHeap.h: Binary heap TestBinaryHeap.cpp: Test program for binary heaps LeftistHeap.h: Leftist heap TestLeftistHeap.cpp: Test program for leftist heaps BinomialQueue.h: Binomial queue TestBinomialQueue.cpp: Test program for binomial queues TestPQ.cpp: Priority Queue Demo Sort.h: A collection of sorting and selection routines TestSort.cpp: Test program for sorting and selection routines RadixSort.cpp: Radix sorts DisjSets.h: Header file for disjoint sets algorithms DisjSets.cpp: Efficient implementation of disjoint sets algorithm TestFastDisjSets.cpp: Test program for disjoint sets algorithm WordLadder.cpp: Word Ladder Program and Word Changing Utilities Fig10_38.cpp: Simple matrix multiplication algorithm with a test program Fig10_40.cpp: Algorithms to compute Fibonacci numbers Fig10_43.cpp: Inefficient recursive algorithm (see text) Fig10_45.cpp: Better algorithm to replace fig10_43.c (see text) Fig10_46.cpp: Dynamic programming algorithm for optimal chain matrix multiplication, with a test program Fig10_53.cpp: All-pairs algorithm, with a test program Random.h: Header file for random number class Random.cpp: Implementation for random number class TestRandom.cpp: Test program for random number class UniformRandom.h: Random number class using standard library Fig10_63.cpp: Randomized primality testing algorithm, with a test program SplayTree.h: Top-down splay tree TestSplayTree.cpp: Test program for splay trees RedBlackTree.h: Top-down red black tree TestRedBlackTree.cpp: Test program for red black trees Treap.h: Treap TestTreap.cpp: Test program for treap SuffixArray.cpp: Suffix array KdTree.cpp: Implementation and test program for k-d trees PairingHeap.h: Pairing heap TestPairingHeap.cpp: Test program for pairing heaps MemoryCell.h: MemoryCell class interface (Appendix) MemoryCell.cpp: MemoryCell class implementation (Appendix) MemoryCellExpand.cpp: MemoryCell instantiation file (Appendix) TestMemoryCell.cpp: MemoryCell test program (Appendix)
- 9.71MB
数据结构c++
2018-10-17关于数据结构与算法的学习,里面介绍的基于c++的有关算法
- 2.48MB
c++数据结构基础
2018-11-24数据结构中的一些基础内容,都是在网上总结摘抄而来,可以复习复习
- 2.8MB
南昌大学数据结构实验报告(C++语言描述).pdf
2021-10-14南昌大学数据结构实验报告(C++语言描述).pdf
- 53KB
数据结构与程序设计—— C++描述(高等教育出版社)
2011-11-09数据结构与程序设计—— C++描述(高等教育出版社) Bobert L.Kruse Alexander J.Ryba
- 98KB
数据结构习题解析-面向对象方法和C++语言描述-殷人昆.doc
2021-09-30数据结构习题解析-面向对象方法和C++语言描述-殷人昆.doc
- 9.56MB
殷人昆数据结构(用面向对象方法和C++描述).
2012-03-01殷人昆数据结构(用面向对象方法和C++描述).
- 21.25MB
数据结构C++语言描述——应用标准模板库STL
2012-11-05数据结构C++语言描述——应用标准模板库STL.PDF