国际建设管理学会网站,如何通过网站获取qq,网新中英企业网站管理系统,网站后台发文章图片链接怎么做一. 数据结构概述、栈、队列
1. 数据结构概述 2. 栈数据结构的执行特点 3. 常见数据结构之队列 二. 常见数据结构之数组 数组它就是内存中的一块儿连续区域。数组变量存的是数组在堆内存当中的起始地址。数组查询任意索引位置的值耗时相同#xff0c;数组根据索引查询速度快。…一. 数据结构概述、栈、队列
1. 数据结构概述 2. 栈数据结构的执行特点 3. 常见数据结构之队列 二. 常见数据结构之数组 数组它就是内存中的一块儿连续区域。数组变量存的是数组在堆内存当中的起始地址。数组查询任意索引位置的值耗时相同数组根据索引查询速度快。数组是一种根据索引查询快增删慢的模型。数组增删元素要对元素进行移位甚至可能要创建新数组。三. 链表
链表中的每个元素节点首先是包含了自己的节点的地址每个元素节点的内部包含了自己的数据值和下一个元素的地址。头地址指向链表中的第一个元素。链表只是增删那一刻相对来说比较快增删数据要找到这个数据才能删找的过程也就是查询的过程还是比较慢的。链表的分类 单向链表只能从前往后找。双向链表从前可以往后找从后也可以往前找。有个头地址有个尾地址头可以往后找尾可以往前找。Java中双链表用的比较多。增删首尾元素的速度特别快。因为双链表可以直接定位首尾元素。结论数组根据索引查元素是最快的而双链表增删首尾元素的速度是最快的。四. 二叉树和二叉查找树
二叉树和二叉查找树是我们后面一些特殊集合的底层数据结构。二叉树是包含一个父节点父节点产生一个左节点还有一个右节点。每个节点最多只能有两个子节点分别是左子节点和右子节点。如果是根节点它的父节点地址值就为null。放了数据的二叉树 二叉查找树 二叉查找树它小的会往左边走大的会往右边走。二叉查找树它是一种二分查找的算法目的为了提高检索数据的性能。二叉查找树又称二叉排序树或者二叉搜索树。因为二叉查找树它小的会往左边走大的会往右边走因此左子树上所有节点的值都小于根节点的值右子树上所有节点的值都大于根节点的值。普通二叉树不怎么用开发中用的最多的还是二叉查找树。二叉查找树节点添加的一个机制
规则小的存左边大的存右边一样的不存。将7作为根节点4比7小往左边走10比7大往右边走。二叉查找树是一个增删改查都挺快的一个数据结构相对来说比较完美包括后续数据库检索数据也会用到这种数据结构。五. 平衡二叉树(比较完美的一种二叉树结构)
二叉查找树存在的问题 我们发现排好之后这个二叉查找树相当于是一个链表而链表的话查询速度就慢了。 问题出现瘸子现象导致它的查询性能与单链表一样查询速度变慢我们希望这个树它能在满足二叉树的规则之上能够尽量的矮小因为树越矮去搜索的深度就会越短可以提高检索的性能。而平衡二叉树的目的就是为了把这个数做的尽量矮小数据的分布尽量的均匀。 如何去满足成为一颗平衡二叉树
平衡二叉树要求任意节点的左右两个字数的高度差不超过1这样可以使元素分布的尽量均匀把树做的尽量矮小。思路左边高右拉。右边高左拉。左边高右拉右拉不行就放弃右拉先以不平衡的那个点左拉再整体右拉反之亦然。案例使1234567成为一颗平衡二叉树: 4 2,6 1,3,5,7 六. 红黑树
红黑树与平衡二叉树的目的一样都是为了提高数据的增删改查的性能。红黑规则黑红黑红交替的。红黑树的每一个节点要多一个字段值来标记它是什么颜色。后面去看Java底层代码也能看到有些是基于红黑树的它的节点里面是有这种red,black这样的属性的。路径算法每条路径均包含相同数目的黑色节点。怎样去通过红黑规则来保持平衡