目录21.2基于数组的简单实现…21.3Java虚拟机中的栈214栈应用实例4着4§22队列21队列ADT…222基于数组的实现223队列应用实例§2.3链表48231单链表…232基于单链表实现栈233基于单链表实现队列54§24位置24.1位置ADT…24.2位置ADT接口56§25双端队列251双端队列的ADT25.2双端队列的接口253双向链表254基于双向链表实现的双端队列……第三章向量、列表与序列§3.1向量与数组68311向量ADT3.12基于数组的简单实现313基于可扩充数组的实现314 ava. util. Array List类和jva.uti. /ector类§3.2列表78.2.1基于节点的漫作…,,a322由秩到位置……323列表ADT24基于双向链表买现的列表…§33序列90331列ADT332基于双向链表实现序列333基于数组实现序列§34迭代泰4.1简单迭代器的ADTii目录342迭代器接口343迭代器的实现344Java中的列表及迭代器…第章对01§41语及性质411节点的深度、树深度与高度412度、内部节点与外部芍点…1044.1.3路径414祖先、后代、子树和芍点的高度41.5共同祖先及最低共同祖先4.16有序树、m叉树4.17二叉树…418满二义树与完全二义107§4.2树抽象数据类型及其实现2.1父亲-长子-弟弟”嫫型……42.2树ADTaadaaidai11042.3树的Java接口1114.2.4基于链表实现树111§43树的基本算法1134.3.1 getSize0—统计(子)树的规模……1134.3.2 getHeight0计算节点的高度4.3.3 getDepth0计算节点的深度434前序、后序遍历…4.3.5层次遍历…1164.3.6树迭代器…,,……,…,………,……117§44二叉对抽象数据类型及其实现19441二叉树ADT119442二又树类的Java接44.3二义树类的实现§4.5二又对的基本算法1314.5.1 getsize0、 getheight(0和 getDepth04.5.2 update Size()1314.5. 3 update Height(4.5.4 update Depth0)…itatiaia4.5.5 secede(4.5.6 attachLOTpattachRO45.7二叉树的遍历4.5.8直接前驱、直接后继的定位算法目录§4.6完全二叉树的Java实现46.1完全二叉树类的Jaa接口1374.6.2基于向量的实现第五章优先队列§5.1优先级、关键码、全序关系与优先队列14§52条目与比较器145521条目145522比较器14723 Comparator接口及其实现147§53优先队列ADT及Jva接了149531ADT描述532Java口533基于优先队列的排序器§54用向量实现优先队列§55用列表实现优先队列551基于无序列表的实现及分析…153.52基于有序列表的实现及分杆§56选择排序与插入排序15756.1选择排序562插入排序157563效率比较§57堆的定义及性质57.1堆结构…57.2完全性§58用堆实现优先队列5.8.1基于堆的伏先队列及其实现582插入与上滤583删除与下滤584改变任意节点的关键码58.5建堆.§59堆排序591直接堆排序…1705.92就地堆排序171§510 Huffman1735.10.1二叉编码树…173目录5.102最伏编码树1745103 Huffman编码与 Huffman编码树……5.104} duffman编码树的杓造算法805.105苤于优允队列凶H「man树构造算法第六章映射与词典§6.1映射6.1.1映射的ADT描这6.1.2映射的Java接口…866.13判等器…1876.14aa包中的映射类6.15基于列表实现映射类§6.2散列表191621桶及桶数组191622散列函数…191623散列码624压缩函数194625冲突的普遍性——生日悖论626解决冲突627基于散列表实现块射类…628装填因子与重散列4,,4,,来§63无序词典631无序词典的ADT描述632元序词典的Java接口633列表式无序洞典及其实现634散列表式无序词典及其实现…….….….,.,.,..,208§64有序词典211641全序关系与有序查找表211642二分查找211643有序词典的ADT描述213644有序词典的Java接…213645基于有序查找表实现有序词典…214笫七章查找树219§71二分查找树7.1.1定义…….2217.12查找算法713完全查找算沄…aaidaenait225目录7.14插入算法……7.15删除算法7.1.6二分查找树节点关的实现2317.17二分查找树类的实现2327.1.8二分查找树的平均性能235§72AL树721平衡二分查找树722等价二分查找树2377.23等价变换237724AVL树.239725插入节点后的重平衡…2407.26节点删除后的重平24527AL树的Java实现250973伸展树2537.3.1数据局部性…2537.32逐层伸展…733双层伸展734分摊复杂度…735伸展树的aa实现207.36插入…2647.3.7删除…§74B树2674.1分级存储267742B树的定义743关键码的查找…744性能分析aaiia0001000i0010a427074.5上溢点的处理…,,a.2714.6关键码的插入272747下溢卡点的处理27674.8关键码的删除……,第八章排序279§8.1归并排序28081.1分治策略.280812间复杂度281813归并算法…2828.14 Mergesort的Jaa实现…284§82快速排序目录82.1分治策略22轴点…285823划分算法4着4286824 Quicksort的Java实现287825间复杂度…288§83复杂度下界831比较树与基于比较的算法2908.3.2下界291第九章串293§9.1串及其ADT294§9.2串模式匹配921概念与记号922问题……297923算法效率的测试与评价298§93蛮力算法9.3.1算法描述……a9.32算法实现2999.33算法分析300§94Kuth- Morris-Prat算法941蛮力算法的改进942ex表的定义及含义…3029.4.3KMP算法摧述……44ne表的特殊情况94.5nex表的构造30494.6nex:表的改进30494.7KMP算法的Java实现948性能分析308§95BM算法3099.5.1坏字符策略3099.5.2好后缀策略53BM算法9.54BM算法的Ja旧a买现…3149.5.5性能318第十章图321§10.1概述目录10.11无向图、混合图及有向图10.12度…110.13筒单图10.14图的复杂度…32410.15子图、生成子图与限制子图3251016通路、环路及可达分量……101.7连通性、等价类与连通分量10.18森林、树以及无向图的生成树10.19有向图的生成树32810.1.10带权网络.329§10.2抽象数据类型10.21图…33010.22顶点…3311023边333§10.3邻接矩阵33410.31表示方法33410.32时间性能10.33空间性能…336§104邻接表3371041顶点表和边表1042顶点与邻接边表33810.4.3边…34010.4基于邻接表实现图结构343§10.5图遍历及其算法模板346§106深度优先遍历3480.61深度优先遍历算法10.62边分类…34910.63可达分量与DFS树35010.64深度优先遍厉算法模板10565可达分量算法10.66单强连通分量算法10.6,7强迮通分量分解算法35610.68浓绾图与弱连通性14357§107广度优先遍历10.71广度优允遍历算法…3581072边分类…10.73可达分量与BFS树10.74广度优先遍历算法模板360vilL/xi目录10.75最短距离算法§108最佳优先遍历3631081最生优先遍历算法36310.82最住优先遍历算法模板…10:8.3最短路径10.84最短路径序列10.85 Dijkstra算法…37210.86最小生成树.37510.87Pm- Jarnik算法377附录DSA类关系图插图索引表格索引算法宗引代码索引定义索引观察结论索引XIX推论索引引理索引定理索引XXIV关键词索引XXⅶi