
数据结构
文章平均质量分 60
数据结构
学习java的张三
这个作者很懒,什么都没留下…
展开
-
算法------七大排序
排序稳定性:两个相等的数据,经过排序后,排序算法保证不会打乱两个数据的相对位置选择排序将集合分为两个区间,每次从无序区间选择一个最大值/最小值,存放在无序区间的最后(或最前),直到全部待排序的数据元素排序完成 public static void selectionSort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { int min = i; ..原创 2022-03-16 22:37:46 · 1591 阅读 · 0 评论 -
Java中一个基于整型的最大堆实现代码
目录定义根据子节点的索引得到父节点的索引根据父节点的索引得到左子树的索引根据父节点的索引得到右子树的索引元素的上浮操作取出当前堆中的最大值元素的下沉操作把任意数组初始化成大根堆交换数组中指定的元素全部代码测试定义public class MaxHeap { List<Integer> data; public MaxHeap(){ this(10); } //根据传入的size来初始化...原创 2022-03-01 23:15:27 · 182 阅读 · 0 评论 -
优先级队列-----堆
堆堆逻辑上首先是一棵完全二叉树大根堆/大堆:堆中根节点值 >= 子树的节点值,叫做大堆/大根堆/最大堆小根堆/小堆:堆中根节点值 <= 子树的节点值,叫做小堆/大根堆/最大堆注意在最大堆中,当前的根节点是最大的,在任意子树中也满足节点的大小关系和所处的层次无关二叉树的存储方式使用顺序表存储完全二叉树时,节点的索引和节点的关系如下:根节点从0开始编号,已知父节点为k,左子树索引为2k+1,右子树索引为2k+2已知子节点为k,父节点就是(...原创 2022-03-11 16:33:37 · 610 阅读 · 0 评论 -
Java中的List、Map、Set的用法
List接口List接口(线性表接口):ArrayList(动态数组--要保存的元素个数不确定),LinkedList(链表)增加add(任意数据类型 新的值)add(int index,任意数据类型):在索引为index的位置上插入新元素...原创 2022-02-24 23:20:20 · 1035 阅读 · 0 评论 -
Java中一个二叉树的例子
目录定义一个二叉树前序遍历中序遍历后序遍历求二叉树的节点数求二叉树的叶子节点数查找二叉树中是否有值为val的节点求二叉树的高度求二叉树第k层的节点全部代码定义一个二叉树public class MyBinTree { private static class TreeNode{ char val; // 左子树根节点 TreeNode left;原创 2022-02-20 21:50:16 · 665 阅读 · 0 评论 -
数据结构-----二叉树
目录树形结构树形结构特点树一些概念二叉树两种特殊的二叉树满二叉树完全二叉树注意二叉树的存储二叉树的遍历遍历深度优先遍历前序遍历中序遍历后序遍历广度优先遍历树形结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。它是根朝上,而叶朝下的。树形结构特点有一个特殊的节点,称为根节点,根节点没有前驱节点 除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、....原创 2022-02-18 22:12:53 · 1255 阅读 · 0 评论 -
1.栈和队列
目录线性表非线性结构栈(stack)入栈(push)出栈(pop)返回栈顶元素(peek)队列(Queue)栈和队列都是线性表,都是基于List线性表数组,链表,字符串,栈,队列元素按照一条直线排列非线性结构树,图栈(stack) 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。后进先出的线...原创 2022-01-23 10:54:26 · 279 阅读 · 0 评论