![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构基础知识点
柠萌呀
致力于Java学习,加油,我能行!
展开
-
数据结构基础知识【十一】:哈希表
目录哈希表一 . 概念二 . 冲突1.概念2.解决哈希冲突3.常见哈希函数哈希表一 . 概念散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数...原创 2020-05-08 15:25:35 · 376 阅读 · 0 评论 -
数据结构基础知识【九】:二叉搜索树 && 二叉搜索树的查找、插入、删除操作
文章目录二叉搜索树1.概念2.性质3.查找操作过程分析:代码示例:4.插入操作过程分析:二叉搜索树1.概念二叉搜索树(BST)又称二叉查找树或二叉排序树。一棵二叉搜索树是以二叉树来组织的,可以使用一个链表数据结构来表示,其中每一个结点就是一个对象。一般地,除了key和卫星数据之外,每个结点还包含属性lchild、rchild和parent,分别指向结点的左孩子、右孩子和双亲(父结点)。如果某...原创 2020-04-23 16:49:19 · 305 阅读 · 0 评论 -
数据结构基础知识【八】:优先级队列
优先级队列原创 2020-04-18 15:01:07 · 758 阅读 · 0 评论 -
数据结构基础知识【十】:Map&Set
Map原创 2020-05-05 16:08:08 · 156 阅读 · 0 评论 -
数据结构基础知识【六】:归并排序
归并排序递归版本:1.归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。先将一组数划分,最终得到两个有序的数组,最后在合并两个后序的数组2.稳定性:稳定3....原创 2020-04-14 16:13:37 · 164 阅读 · 0 评论 -
数据结构基础知识【七】:快速排序及快排的优化(递归实现)
快速排序1.快速排序原理:(1)从区间中取一个数据作为基准值,按照该基准值将区间分割左右两部分左部分 基准值 右部分基准值左侧的数据小于基准值,基准值右侧的数据大于基准值(2)按照快排的思想排左部分(3)按照快排的思想排右部分代码示例:public static void quickSort(int[] array, int left, int right){ ...原创 2020-04-14 16:42:19 · 264 阅读 · 0 评论 -
数据结构基础知识【五】:选择排序
选择排序1.步骤图:(1)(2)2.代码示例:public class Sort{ //选择排序 public static void selectSort(int[] array){ for(int i=0; i<array.length-1; i++){//总共要选择的次数 每次选择最大的 //array.lengt...原创 2020-04-12 11:39:56 · 138 阅读 · 0 评论 -
数据结构基础知识【四】:插入排序之直接插入排序和希尔排序
一、直接插入排序1.步骤:(1)找待插入数据前面已经排好序中的位置;(2)插入数据2. 时间复杂度为O(N^2)3. 空间复杂度为O(1)---->在排序时没有用到辅助空间4. 稳定性:稳定5. 应用场景:搬入元素个数比较小,序列接近有序或数据个数较少6.最优情况下:O(N)–>用户提前有序7.最差情况:O(N^2)–>逆序8.代码实现:public cla...原创 2020-04-07 17:06:52 · 136 阅读 · 0 评论 -
数据结构基础知识【二】:二叉树
1.树:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。2.树和非树:3.二叉树的一些概念:(1)节点的度:一个节点含...原创 2020-03-25 20:20:24 · 478 阅读 · 0 评论 -
数据结构基础知识【一】:栈和队列
栈Stack1.栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。2.压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。3.出栈:栈的删除操作叫做出栈。出数据在栈顶。4.栈的应用:(1)改变元素的次序。(2)括号的匹配(3)四则混...原创 2020-03-24 21:43:48 · 166 阅读 · 0 评论 -
数据结构基础知识【三】:二叉树的构建及遍历
编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每...原创 2020-03-24 21:08:13 · 158 阅读 · 0 评论