# DataStructureExample
**Repository Path**: Noyitela/DataStructureExample
## Basic Information
- **Project Name**: DataStructureExample
- **Description**: 精讲数据结构配套源码(作者:塔拉)
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2023-04-01
- **Last Updated**: 2024-10-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 《精讲数据结构(Java 语言实现)》配套代码目录结构
Chapter2_ArrayAndLinkedList:第2章:数组与链表
└─com.ds
└──array:数组
└──ArrayCreationAndUsing:数组的创建与使用
└──linked:链表
├──CrossLinkedList:十字链表
├──FloydCycleFindingAlgorithm:佛洛依德判环法
├──MyDoubleLinkedList:自定义双链表封装类型
├──MyLinkedList:自定义单链表封装类型
└──MySkipList:自定义跳跃表封装类型
Chapter3_StackAndQueue:第3章:栈和队列
└─com.ds
└──queue:队列
├──ArrayQueue:通过数组实现的队列结构
├──LinkedListQueue:通过链表实现的队列结构
├──SimulatedQueue:用两个栈实现的模拟队列结构
└──TestQueue:队列结构的应用测试类
└──stack:栈
├──ArrayStack:通过数组实现的栈结构
├──LinkedListStack:通过链表实现的栈结构
├──SimulatedStack:用两个队列实现的模拟栈结构
├──TestMethodStack:方法栈演示代码
└──TestStack:栈结构的应用测试类
Chapter4_Recursion_Search_Sort:第4章:递归、查找与排序
└─com.ds
└──recursion:递归
└──TestRecursion:递归结构测试类
└──search:查找
├──BinarySearch:二分搜索的代码实现类
├──FibonacciSearch:斐波那契查找的代码实现类
└──InterpolationSearch:插值查找的代码实现类
└──sort:排序
├──BubbleSort:冒泡排序
├──BucketSort:桶排序
├──CountingSort:计数排序
├──HeapSort:堆排序
├──InsertionSort:插入排序
├──MergeSort:归并排序
├──QuickSort:快速排序
├──SelectionSort:选择排序
├──ShellSort:希尔排序
├──TestSpeed1:10万级随机正整数排序时间测试
└──TestSpeed2:100万级随机正整数排序时间测试
Chapter5_String:第5章:字符串
└─com.ds
└──matching:字符串匹配算法
├──BoyerMoore:BM算法
├──BruteForce:BF算法
├──KMP:KMP算法
├──RabinKarp:RK算法
├──Sunday:Sunday算法
└──TestString:Java语言中String类型测试类
Chapter6_Tree:第6章:树结构
└─com.ds
└──binarysortedtree:二叉排序树
├──AVLTree:AVL树结构
└──BinarySortedTree:二叉排序树结构
└──binarytree:二叉树
├──BinaryTree:二叉树结构
├──Node:二叉树的节点代码定义
└──TreeToBinaryTree:树、森林与二叉树的转换
└──bplustree:B+树
└──BPlusTree:B+树结构
└──btree:B树
└──BTree:B树结构
└──fenwicktree:树状数组
├──DifferenceFenwickTree:基于差分数组的树状数组结构
├──DifferenceFenwickTree2:基于差分数组的树状数组结构,包含差分索引树与差分和索引树
└──FenwickTree:树状数组结构
└──huffmantree:哈夫曼树
└──HuffmanTree:哈夫曼树与哈夫曼编码译码器
└──redblacktree:红黑树
└──RedBlackTree:红黑树类型
└──threadedbinarytree:线索二叉树
├──MorrisTraversal:Morris遍历
├──Node:线索二叉树的节点代码定义
└──ThreadedBinaryTree:线索二叉树结构
└──tree:一般树结构
├──Node:树形结构的节点代码定义
└──Tree:一般的树形结构
└──trie:字典树
├──ArrayTrie:通过数组实现的字典树
└──LinkedTrie:通过链式树形结构实现的字典树
└──twothreefourtree:2-3-4树
└──TwoThreeFourTree:2-3-4树结构
Chapter7_Heap:第7章:堆结构
└─com.ds
└──binaryheap:二叉堆
└──BinaryHeap:二叉堆结构
└──binomialheap:二项堆
├──BinomialHeap:二项堆结构
└──Node:二项树的节点代码定义
└──leftistheap:左式堆
├──LeftistHeap:左式堆结构
└──Node:左式堆的节点代码定义
└──skewheap:斜堆
├──Node:斜堆的节点代码定义
└──SkewHeap:斜堆结构
Chapter8_HashTable:第8章:散列表
└─com.ds
└──hashmethod:散列函数配套实体类
└──Person:重写了hashCode()方法的自定义Person类
└──hashtable:散列表实现
├──DoubleHashTable:双重散列哈希表
├──LinearProbingHashTable:线性探测哈希表
├──PerfectHashTable:全域散列哈希表
└──QuadraticProbingHashTable:二次探测哈希表
Chapter9_Graph:第9章:图结构
└─com.ds
└──graph:图结构
├──CriticalPath:基于AOE网的关键路径算法
├──MinimumSpanningTree:无向带权图的最小生成树
├──ShortestPath:有向带权图的最短路径
├──TopologicalSort:基于AOV网的拓扑排序算法
└──Traversal:图的遍历
***
# 《精讲数据结构(Java 语言实现)》配套代码免责声明
## 一、声明目的
本免责声明旨在明确《精讲数据结构(Java 语言实现)》(以下简称 “本书”)所提供的配套代码案例的使用限制和责任范围,以保护作者的合法权益,同时提醒读者在使用代码案例时应谨慎操作并承担相应的风险。
## 二、代码案例的性质
本书所提供的配套代码案例仅作为学习和参考之用,旨在帮助读者更好地理解数据结构的概念和 Java 语言的实现。这些代码案例并非为生产环境设计,可能存在不稳定性、不完善性或潜在的错误。
## 三、使用风险
读者在使用本书配套代码案例时,应自行承担全部风险。在将代码案例应用到生产环境之前,读者必须进行充分的测试、检查和修改,以确保其安全性、稳定性和适用性。
作者不对因使用本书配套代码案例而导致的任何直接、间接、特殊、偶然或后果性的损失承担责任,包括但不限于数据丢失、系统故障、业务中断、经济损失等。
读者应自行评估代码案例在其特定环境中的适用性,并根据实际情况进行必要的调整和优化。作者不保证代码案例能够满足读者的所有需求或在任何特定环境下正常运行。
## 四、免责范围
作者对本书配套代码案例的准确性、完整性和可靠性不做任何保证。读者在使用代码案例时,应自行验证其正确性和有效性。
作者不对因第三方软件、硬件或网络环境等因素导致的代码案例无法正常运行或出现问题承担责任。
作者不承担因读者违反法律法规、侵犯他人知识产权或其他合法权益而导致的任何责任。
## 五、知识产权
本书及配套代码案例的知识产权归作者所有。未经作者书面许可,读者不得复制、传播、修改、出售或以其他方式利用本书及配套代码案例的全部或部分内容。
## 六、其他条款
本免责声明的解释和适用应遵循中华人民共和国法律。
如读者对本免责声明有任何疑问或争议,应通过友好协商解决。协商不成的,任何一方均可向有管辖权的人民法院提起诉讼。
## 七、声明生效
读者在使用本书配套代码案例时,即视为已阅读、理解并同意本免责声明的全部内容。