衣服网站设计wordpress文章采集助手
web/
2025/9/28 4:15:48/
文章来源:
衣服网站设计,wordpress文章采集助手,网页网站原型图占位符怎么做,东莞seo托管1.栈
模型#xff1a; 栈模型和一个杯子差不多#xff0c;一端开口#xff0c;一端封闭#xff0c;开口的那端叫栈顶#xff0c;封闭的那端叫栈底#xff0c;如图所示 介绍#xff1a; 元素进入栈中叫进栈/压栈#xff0c;元素出来叫出栈#xff0c;元素进栈后会先来…1.栈
模型 栈模型和一个杯子差不多一端开口一端封闭开口的那端叫栈顶封闭的那端叫栈底如图所示 介绍 元素进入栈中叫进栈/压栈元素出来叫出栈元素进栈后会先来到栈底再进栈的元素会垒到上一个进栈的元素的上方距离栈顶最近的即最上方的元素为栈顶元素每次出栈就是将栈顶元素出栈。可以理解为向弹夹中压子弹。
特点 栈的特点是先进后出后进先出即先进去的元素会后出来后进去的元素先出来 2.队列
模型 队列模型两端都是开口的一端为前端一端为后端 介绍 元素进入队列从后端进会先来到最靠近前端的位置后续元素继续进入队列会排到前一个元素的后面元素出队列会从前端出最靠近前端的元素先出。可以理解为排队的队伍。
特点 队列的特点是先进先出后进后出。 3.数组
模型 特点 数组中的元素在内存中是连续存储的。 查询速度快通过地址值和索引定位查询数据查询任意数据耗时相同 删除效率低要将原始数据删除还需将后面每个数据前移 添加效率低添加数据后的每个数据需后移再添加元素 4.链表
介绍
链表中的元素为结点每个结点中都要存储具体的数据和下一个结点的地址如下图所示。 模型 在链表中第一个创建出来的结点为头结点头结点创建完后他可以存储具体的数据同时下一个结点的地址存储的为^表示空地址因为这个结点后面没有其他结点了。 如果已经创建了一个链表的头结点需要再添加一个数据A那么接下来的步骤应该是先创建一个新的结点新结点存储数据A下一个结点地址为^然后将头结点存储的下一个结点的地址赋值为新结点的地址。如下图所示 再添加数据C和数据D呢如下图所示 特点 链表中的结点是独立的对象在内存中是不连续的每个结点包含数据值和下一个结点的地址。 相较于数组来说 查询慢无论查询哪个数据都要从头开始找。 增删块只需改变存储的下一个结点的值加删除结点就能完成增删操作。
双向链表模型 5.树 模型 如图所示树是由节点结点组成16是15和17的父节点15是16的左子节点17是16的右子节点。 而每个节点中存储的值由下图所示 每个节点中都存储着自己存储的值父节点地址左子节点地址右子节点地址。若哪个节点没有那么存储的地址值置为null。
术语 度每一个节点的子节点数量 树高树的总层数上文中的树树高为4从上到下依次为第一层、第二层、第三层、第四层 根节点最顶层的节点上文中的树即22 左子节点左下方的节点 右子节点右下方的节点 根节点的左子树根节点的左下方节点及其下方的所有节点连接起来的树 根节点的右子树根节点的右下方节点及其下方的所有节点连接起来的树 二叉树 规则 每一个节点的子节点数2 模型 二叉树遍历方式
1前序遍历 前序遍历即从根节点开始按照当前节点、左子节点、右子节点的顺序遍历。 例如下图二叉查找树 其前序遍历的结果为 20181619232224
2★中序遍历 从最左边的子节点开始然后按照左子节点当前节点右子节点的顺序遍历 例如下图二叉查找树 其中序遍历的结果为 16181920222324这种遍历方法遍历二叉查找树得到的结果是由小到大的
3后序遍历 从最左边的子节点开始然后按照左子节点右子节点当前节点的顺序遍历 例如下图二叉查找树 其后序遍历的结果为 16191822242320
4层序遍历 从根节点开始一层一层的遍历 例如下图二叉查找树 其层序遍历的结果为 20182316192224 二叉查找树又叫做二叉排序树或二叉搜索树 普通二叉树的弊端 数据没有规律查找很难必须要遍历才能查找效率很低所以有了二叉查找树。 特点 1.每一个节点上最多有两个子节点即是二叉树 2.任意节点左子树上的值都小于当前节点 3.任意节点右子树上的值都大于当前节点 模型 添加节点规则 从根节点开始逐个往下层比小的放左边大的放右边重复的不放
查找结点规则 从根节点开始逐个往下层比查找元素比节点小跟其左子节点继续比查找元素比节点大跟其右子节点继续比直到找到或者节点的子节点为空即没找到。
二叉查找树的弊端 如果按顺序添加的元素正好是逐渐增大的那么第一个元素为根节点其他所有元素都会逐个排到最下层节点的右子节点位置这样如果要查找最大的那个数据查找效率还是很低所以有了二叉平衡树。 平衡二叉树 规则 任意节点的左右子树高度差不超过1 模型 平衡二叉树的旋转机制 平衡二叉树通过旋转机制来保证任意节点的左右子树高度差不超过1 触发机制 当添加一个节点后该树不再是一颗平衡二叉树 旋转方式 1.左旋 支点不是根节点情况 ①确定支点从添加的节点开始不断的往父节点找不平衡的节点左右子树高度差超过1 ②把支点左旋降级变成左子节点 ③晋升原来的右子节点 如图
变成 支点为根节点 ①确定支点从添加的节点开始不断的往父节点找不平衡的节点左右子树高度差超过1 ②将根节点的右侧往左拉 ③原来的右子节点变成新的父节点并把多余的左子节点出让给已经降级的根节点当右子 节点 如图
变成 2.右旋 支点不是根节点情况 ①确定支点从添加的节点开始不断的往父节点找不平衡的节点左右子树高度差超过1 ②把支点右旋降级变成右子节点 ③晋升原来的左子节点 如图
变成 支点为根节点 ①确定支点从添加的节点开始不断的往父节点找不平衡的节点左右子树高度差超过1 ②将根节点的左侧往右拉 ③原来的左子节点变成新的父节点并把多余的右子节点出让给已经降级的根节点当左子 节点 如图
变成
平衡二叉树需要旋转的四种情况 1.左左 当根节点的左子树的左子树有节点插入导致二叉树不平衡 这种情况需要进行一次右旋 如图 变成 ↓ ↓ 2.左右 当根节点的左子树的右子树有节点插入导致二叉树不平衡 这种情况需要对根节点的左子树进行一次左旋再整体进行一次右旋 如图
变成变成 3.右右 当根节点的右子树的右子树有节点插入导致二叉树不平衡 这种情况需要进行一次左旋 如图
变成 4.右左 当根节点的右子树的左子树有节点插入导致二叉树不平衡 这种情况需要对根节点的右子树进行一次右旋再整体进行一次左旋 如图
变成变成 红黑树 红黑树是一种自平衡的二叉查找树它的每一个节点上都有存储位表示节点的颜色每一个节点可以是红是黑它不是高度平衡的它的平衡是通过“红黑规则”进行实现的。 红黑树的增删改查性能都很好。
红黑规则 ①每一个节点都是红色或者黑色 ②根节点必须是黑色 ③如果一个节点没有子节点或者父节点则该节点相应的指针属性值为Nil这些Nil视为叶节 点每个叶节点Nil都是黑色的 ④如果某一个节点是红色那么它的子节点必须是黑色不能出现两个红色节点相连的情 况 ⑤对每一个节点从该节点到其所有后代叶节点的简单路径上均包含相同数目的黑色节点 后代叶节点该节点下面的叶节点 简单路径只能前进不能回头的路径
模型 红黑树添加节点规则 首先要满足红黑规则 添加节点时添加的节点默认为红色的添加效率更高 下面是一些情况的解决方案
旋转时不用管叶节点旋转后加上叶节点即可
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83125.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!