
数据结构
一蓑烟雨任平生2024
这个作者很懒,什么都没留下…
展开
-
满二叉树、完全二叉树、平衡二叉树、最优二叉树
一、满二叉树 一棵二叉树的结点要么是叶子结点,要么它有两个子结点(如果一个二叉树的层数为K,且结点总数是(2^k) -1,则它就是满二叉树。)二、完全二叉树 若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边,这就是完全二叉树。三、平衡二叉树 它或者是一颗空树,或它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。...原创 2020-10-13 07:47:59 · 1391 阅读 · 2 评论 -
找出数组中重复元素
1.改变数组 public static int getRepeat(int[] arr){ for (int i = 0; i < arr.length; i++) { while (arr[i] != i){ if (arr[i] == arr[arr[i]]){ return arr[i]; }else {原创 2020-09-27 10:14:56 · 1038 阅读 · 0 评论 -
快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略.原创 2020-08-26 20:22:02 · 157 阅读 · 0 评论 -
二叉树的前序,中序,后序遍历
前序遍历:根节点->左子树->右子树(根->左->右)中序遍历:左子树->根节点->右子树(左->根->右)后序遍历:左子树->右子树->根节点(左->右->根)技巧:看根节点打印的顺序,出现在前还是中,后.前序遍历:GDAFEMHZ中序遍历:ADEFGHMZ后序遍历:AEFDHZMG前序:第一步:打印该节点(再三考虑还是把访问根节点这句话去掉了)第二步:访问左子树,返回到第一步(注意:...原创 2020-08-26 19:58:59 · 11979 阅读 · 2 评论 -
Java集合的快速失败机制 “fail-fast”
1. 新手常犯的错误可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的:publicstaticvoidmain(String[] args){List<String> platformList =newArrayList<>();platformList.add("博客园");platformList.add("优快云");platformList.add("掘金");for(String platf...转载 2020-06-22 15:44:54 · 355 阅读 · 0 评论 -
红黑树
【红黑树】——五分钟搞懂什么是红黑树(全程图解)掘金:什么是红黑树(小仓鼠漫画)红黑树深入剖析及Java实现(美团点评技术团队)寻找红黑树的操作手册原创 2020-07-12 21:14:53 · 133 阅读 · 0 评论