数据结构
肌肉大大
这个作者很懒,什么都没留下…
展开
-
堆的一般介绍
今天学习了一种新的数据结构,叫做堆,堆有很多类型,今天学习的是一个名叫二叉堆的东东,二叉堆是由一颗完全二叉树来实现的,完全二叉树就是假设有n层,则n-1层都是满的,最底层结点要从左部先开始他有两个分类,最大堆和最小堆,最大堆是指根节点的值大于等于每一个子节点的值,最小堆是指根节点的指小于等于每一个子节点的值...原创 2021-05-28 20:12:11 · 80 阅读 · 0 评论 -
关于二叉树本人最近的学习记录
文章目录前言一、二叉树是什么?二、如何遍历树1.前序遍历2.中序遍历3.后序遍历总结树的BFS遍历的演示代码演示如何通过遍历顺序来构架一颗二叉树前言树是数据结构当中比较重要的,最近学习了关于二叉树的一些知识,特此记录一下知识点,遗忘的时候可以翻翻提示:以下是本篇文章正文内容,下面案例可供参考一、二叉树是什么?树是一种特殊的图,是一种有向无环,二叉树是树中比较特殊的一种,每个节点的度最大只能等于二二、如何遍历树树的遍历分为三种,前序遍历,中序遍历,后序遍历前序遍历:根节点在前,左右结点在后原创 2021-05-13 20:42:24 · 234 阅读 · 0 评论 -
排序----归并排序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言归并排序采用一种分治的思想,分治就是说分而治之二、使用步骤1.归并分为两个步骤,首先第一个步骤就是说,先将其分开,第二步就是将有序集合进行合并代码实现//将要排序的数组传入public void sort(int arr[]){ //避免在递归中不停的创造数组 int temp[]=new int[arr.length]; sort(arr,0,arr.length-1;temp);}public void so原创 2021-05-06 15:16:56 · 54 阅读 · 0 评论 -
数据结构-----队列在Java当中的使用
队列是什么队列指的是一种数据结构,这种数据结构与栈类似,但与栈有着本质的不同队列如何操作数据队列当中的元素遵循着先进先出的原理,意思就是最先进入的元素将会最先出去,与栈相反在java当中如何对队列进行使用队列在Java当中只是个接口,所以需要使用实现它这个接口的类来使用队列,实现接口的类有LinkedList和PriorityQueue,但经常使用的是Linklist,使用链表的原因是,队列在进行写操作的时候时间复杂度较为低在进行读操作的时候时间复杂度较为高,所以我们使用与之相似的链表来进行使用原创 2021-03-12 20:54:47 · 162 阅读 · 0 评论 -
稀疏数组实践场景以及简单代码实现
文章目录前言一、稀疏数组如何定义二、思路以及代码实现1.思路分析2.代码实现总结前言稀疏数组常用于压缩数组,避免占用过多空间,此处的数组指的是无效数据数量多于有效数据数量的数组一、稀疏数组如何定义稀疏数字格式:第一行存储原始数据总行数,总列数,总的非0数据个数,接下来每一行都存储非0数所在行,所在列,和具体值 rows cols n二、思路以及代码实现1.思路分析1.遍历数组,确定非0数字数量sum2.根据sum创建稀疏数组Spare[sum+1][3]3.将二维数组有效.原创 2020-11-21 09:59:33 · 272 阅读 · 0 评论 -
插入排序
代码实现public static void main(String agrs[]){ int arr[]={101,34,12,1};//插入排序int valIndex=0;int value=0;for(int i=1;i<arr.length;i++){value=arr[i];//要去进行判断的值valindex=i-1;//是要判断数的钱一个位置while(valIndex>=0&&arr[valIndex]>value){//寻找要插入的原创 2020-11-18 20:15:29 · 58 阅读 · 0 评论 -
选择算法排序
文章目录前言一、选择排序动态演示?二、算法过程1.如何理解2.算法代码实现`总结前言选择排序是内部排序的一种,是通过内部排序,按照规则将元素排列并且给到指定位置的方法提示:以下是本篇文章正文内容,下面案例可供参考一、选择排序动态演示?原始数组:{2,11,3,24}第一躺{2,11,3,24}第二趟{2,3,11,24}二、算法过程1.如何理解当进行扫描的时候,第一个数假定为最小值,然后逐一和后面的数字作比较,如果发现假定的数值比后买你的数字大,则交换数值.因为每一个数组的位置都原创 2020-11-17 19:48:53 · 79 阅读 · 0 评论 -
冒泡排序算法实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录基本介绍一、例子演示二、使用步骤1.引入库2.读入数据总结基本介绍冒泡排序的基本思想,从下标较小的元素开始比较,如果相邻两个元素是逆序则交换两个元素,,使值较大的数往后排,就像水里的气泡一样逐渐网上冒提示:以下是本篇文章正文内容,下面案例可供参考一、例子演示示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy a原创 2020-11-17 19:12:04 · 480 阅读 · 0 评论 -
八皇后问题代码实现以及思路讲解
文章目录问题描述一、解法思路二、解决方法1.先定义一个函数解决如何判断皇后能否放置在这个位置2.向棋盘中添加元素3.对皇后的摆放位置进行一个遍历问题描述八八皇后问题(英文:Eight queens),是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。一、解法思路(1)第一个皇后先放置在第一行第一列,(2)第二个皇后放置在 第二行第.原创 2020-11-12 21:01:51 · 883 阅读 · 0 评论 -
通过栈实现简单综合计算器,使用字符串并不完善(中缀表达式)
文章目录前言一、思路分析二、代码实现总结前言我们如何通过使用栈来实现一个简单的综合计算器例如给出一个字符串 “722-5+1-5+3-3”提示:以下是本篇文章正文内容,下面案例可供参考一、思路分析1.创建两个栈,一个用来存放数字,另外一个用来存放符号2.当我们进行扫描数组的时候,遇见数字直接存放进入数栈中,遇见符号则准备进入符号栈3.在符号栈中,假如栈为空则直接入栈,栈内有元素的话,则进行优先级的比较4.假如将入栈元素优先级小于等于栈顶元素,则弹出栈顶元素,并且数字栈pop出两个元素原创 2020-11-11 21:10:56 · 96 阅读 · 0 评论 -
链表(单链表的四个基本操作实现)
l链表前言一、链表是什么?二、单链表的创建1.如何创建一个链表结点2.如何在链表中实现元素增删查改前言链表是一种简单的数据结构,是非顺序,非连续的存储结构。数据元素的连接通常通过结点中的指针来实现一、链表是什么?链表是一种简单的数据结构,是非顺序,非连续的存储结构。数据元素的连接通常通过结点中的指针来实现,链表中的结点往往包括数据域和指针域二、单链表的创建1.如何创建一个链表结点代码如下(示例):/***声明一个类,包含Data(数据域),next(指针域):指向下一个结点*/c原创 2020-11-11 19:53:36 · 1307 阅读 · 1 评论 -
栈原理及其代码实现
文章目录一、栈的用法以及本质二、图示1.进栈操作2.出栈操作基本算法一. 进栈算法二. 出栈算法代码实现一、栈的用法以及本质在Java内存中,栈用于存储基本类型数据,以及各种引用的值(其实为创建出的对象在堆内存中的地址),在数据结构中为一个线性表,将一端称为栈顶,另外一段称为栈底,向栈里添加一个元素则称为进栈,删除栈内一个元素称为出栈。在执行进栈操作的时候,新元素压在之前的元素上,称为栈顶元素,对栈的操作可以归纳为:先进后出二、图示1.进栈操作2.出栈操作基本算法一. 进栈算法1.设立原创 2020-11-11 18:43:52 · 513 阅读 · 1 评论