
数据结构
文章平均质量分 72
jade*
这个作者很懒,什么都没留下…
展开
-
Java进行多进程编程
文章目录1.什么是进程2.进程和线程的关系1.什么是进程进程(process) => 任务(task)双击exe文件的时候,操作系统就会读取这个可执行文件中的代码和数据,放到内存中,并且创建一个进程来执行里面的代码。一个操作系统,工作的时候里面本来就有很多的进程,这些进程各自在做各自的事情,互不干扰(进程重要的特点:独立性)。某个进程出现问题的时候,只是当前的进程崩溃了,不会干扰到其他的进程。编译运行java程序javac命令进行编译java命令进行运行当我们输入javac,原创 2021-06-10 20:47:14 · 1093 阅读 · 1 评论 -
二叉树的进阶训练
文章目录1.判断完全二叉树2.二叉树的遍历3.二叉树的层序遍历1.判断完全二叉树题目描述: 判断一颗树是不是完全二叉树public static boolean isCompleteTree(TreeNode root){ //通过层序遍历的方式来实现 if(root==null){ return true; } //分成两个阶段来进行判断 //这个变量为fa原创 2021-04-10 23:28:28 · 607 阅读 · 0 评论 -
二叉树的基础训练(Java)
文章目录1.二叉树的构建及训练1.二叉树的构建及训练题目描述: 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。...原创 2021-04-08 17:45:07 · 770 阅读 · 3 评论 -
线性表-链表1(Java)
文章目录1.链表的原理1.1链表的示意图1.2链表的表现形式1.3结点的分类2.链表的代码表示2.1链表的结点定义2.2链表的手工创建2.2.1创建一个[1 3 5 6]的链表2.2.2创建一个空链表2.3遍历链表2.3.1链表不知道长度的情况,打印链表的元素2.3.2通过遍历,打印链表的最后一个元素2.3.3打印链表的倒数第二个元素2.3.4打印链表的第n个结点(n>链表的长度)2.3.5计算出链表中元素的个数2.3.6找到链表中是否包含某个元素1.链表的原理1.1链表的示意图元素:真实存于原创 2021-04-02 20:46:58 · 1670 阅读 · 4 评论 -
哈希表
文章目录1.哈希表的概念1.1哈希表的基本概念1.哈希表的概念1.1哈希表的基本概念哈希表基于数组衍生出来的,哈希表高效的核心奥秘是数组的随机访问能力。顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较,顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(logN),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法: 可以不经过任何的比较,一次要直接从表中得到要搜索的元素。如果构造一种存储结构,通过某种函数使元素的存储位置原创 2021-03-31 16:46:54 · 850 阅读 · 3 评论 -
二叉搜索树
文章目录1.搜索树1.1二叉搜索树的概念1.搜索树1.1二叉搜索树的概念二叉搜索树又称为二叉排序树。二叉搜索树满足下面的性质:1)若它的左子树不为空,则左子树上所有结点的值都小于根节点的值;2)若它的右子树不为空,则右子树上所有结点的值都大于根节点的值;3)它的左右子树也分别称为二叉搜索树;...原创 2021-03-30 22:32:54 · 645 阅读 · 0 评论 -
Map和Set题目(Java)
文章目录1.只出现一次的数字2.带有随机指针的链表1.只出现一次的数字题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。//方法1class Solution { public int singleNumber(int [] nums){ //key表示当前的数字是谁,value表示当前的数字出现了几次 Map<Integer,Integer> map=new HashMap<&g原创 2021-03-29 20:59:31 · 505 阅读 · 3 评论 -
Map和Set(Java)
文章目录1.搜索1.1概念1.2模型2.Map的使用3.Set的使用1.搜索1.1概念Map和Set是一种专门用来进行搜索的容器或者是数据结构,其搜索的效率与其具体的实例化子类有关。Map和Set是一种适合动态查找的集合容器。1.2模型一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),将其称之为Key-Value的键值对,所以模型会有两种:1.纯Key模型,比如:快速查找某个名字在不在通讯录中;2.Key-Value模型,比如:学校的管理系统,每个人的学号都对应着自原创 2021-03-29 07:56:05 · 607 阅读 · 3 评论 -
二叉树1(Java)
文章目录1.二叉树的特点2.二叉树的基本形态1.二叉树的特点1)每个结点最多有两棵子树,即二叉树不存在度大于2的结点2)二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树。2.二叉树的基本形态...原创 2021-03-26 23:56:04 · 766 阅读 · 2 评论 -
排序3(Java)
文章目录1.归并排序1.1归并排序的原理1.归并排序1.1归并排序的原理两个数组归并的过程:首先借助一个临时空间来保存数组,在两个有序数组搞两个下标,比较两个下标的大小,谁小就把谁放在临时空间,顺便把下标往后移。因为是原地排序,因此在最后把数组要拷贝到原数组。归并排序的前提是两边必须都有序,那怎么办呢?为了保证数组有序,因此继续往下切分,切分到只剩下一个元素,就称为有序的数组了。然后按照上述相同的步骤,比较两个有序区间元素的大小,然后继续拷贝回去,之后,比较下一组的数据,以及类推。...原创 2021-03-26 16:03:47 · 471 阅读 · 1 评论 -
排序2(Java)
文章目录1.冒泡排序1.1冒泡排序的原理1.冒泡排序1.1冒泡排序的原理在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。原创 2021-03-25 21:32:51 · 613 阅读 · 4 评论 -
排序1(Java)
文章目录原创 2021-03-24 17:59:59 · 762 阅读 · 0 评论 -
堆的操作(Java)
文章目录1.堆的存储方式1.堆的存储方式由堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来存储堆。原创 2021-03-23 22:57:58 · 621 阅读 · 2 评论 -
优先级队列(Java)
文章目录1.优先级队列1.1基本概念1.2常用的接口介绍1.2.1PriorityQueue的特性1.2.2PriorityQueue的常用接口介绍1.3优先级队列的应用2.优先级队列的模拟实现2.1堆的概念1.优先级队列1.1基本概念优先级队列也是一个队列,但是不是单纯的先进先出,而是把优先级最高的先出去。(优先级队列内部的结构就是堆。)1.2常用的接口介绍1.2.1PriorityQueue的特性Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两原创 2021-03-22 23:13:21 · 845 阅读 · 2 评论 -
树(Java)
文章目录1树的基本概念2.与树相关的一些重要概念3.树的表示形式4.树的应用1树的基本概念树是一种非线性的数据结构,他是由n(n>=0)个有限结点组成一个具有层次关系的集合。把他叫做树。树具有以下特点:1)有一个特殊的结点,称为根节点,根节点没有前驱结点;2)根节点除外,其余结点被分成M(M>0)个互不相交的集合T1,T2,…Tm,其中每一个集合Ti(1<=i<=m)又是一棵与树类似的子树。每个子树的根节点有且只有一个前驱,可以有0个或多个后继。3)树是递归定义的。2.原创 2021-03-21 17:12:15 · 712 阅读 · 1 评论