门户网站如何制作网站域名所有权 查询

pingmian/2025/10/11 12:58:09/文章来源:
门户网站如何制作,网站域名所有权 查询,vpn免流网站建设,鞍山吧最新消息二叉树 二叉树是n个有限元素的集合#xff0c;该集合或者为空、或者由一个称为根#xff08;root#xff09;的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成#xff0c;是有序树。当集合为空时#xff0c;称该二叉树为空二叉树。在二叉树中#xff0c;一个…二叉树 二叉树是n个有限元素的集合该集合或者为空、或者由一个称为根root的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成是有序树。当集合为空时称该二叉树为空二叉树。在二叉树中一个元素也称作一个节点。 特殊类型 满二叉树如果一棵二叉树只有度为0的节点和度为2的节点并且度为0的节点在同一层上则这棵二叉树为满二叉树。完全二叉树深度为k有n个节点的二叉树当且仅当其每一个节点都与深度为k的满二叉树中编号从1到n的节点一一对应时称为完全二叉树 。 完全二叉树的特点是叶子节点只可能出现在层序最大的两层上并且某个节点的左分支下子孙的最大层序与右分支下子孙的最大层序相等或大1。 相关术语 ①节点包含一个数据元素及若干指向子树分支的信息。 ②节点的度一个节点拥有子树的数目称为节点的度。 ③叶子节点也称为终端节点没有子树的节点或者度为零的节点。 ④分支节点也称为非终端节点度不为零的节点称为非终端节点 。 ⑤树的度树中所有节点的度的最大值。 ⑥节点的层次从根节点开始假设根节点为第1层根节点的子节点为第2层依此类推如果某一个节点位于第L层则其子节点位于第L1层。 ⑦树的深度也称为树的高度树中所有节点的层次最大值称为树的深度。 ⑧有序树如果树中各棵子树的次序是有先后次序则称该树为有序树。 ⑨无序树如果树中各棵子树的次序没有先后次序则称该树为无序树 。 ⑩森林由mm≥0棵互不相交的树构成一片森林。如果把一棵非空的树的根节点删除则该树就变成了一片森林森林中的树由原来根节点的各棵子树构成 。 性质 性质1二叉树的第i层上至多有2i-1i≥1个节点 。 性质2深度为h的二叉树中至多含有2h-1个节点。 性质3若在任意一棵二叉树中有n0个叶子节点有n2个度为2的节点则必有n0n21 。 性质4具有n个节点的满二叉树深为log2n1。 性质5若对一棵有n个节点的完全二叉树进行顺序编号1≤i≤n那么对于编号为ii≥1的节点 当i1时该节点为根它无双亲节点 。 当i1时该节点的双亲节点的编号为i/2 。 若2i≤n则有编号为2i的左节点否则没有左节点 。 若2i1≤n则有编号为2i1的右节点否则没有右节点。 遍历二叉树 遍历是对树的一种最基本的运算所谓遍历二叉树就是按一定的规则和顺序走遍二叉树的所有节点使每一个节点都被访问一次而且只被访问一次。由于二叉树是非线性结构因此树的遍历实质上是将二叉树的各个节点转换成为一个线性序列来表示 。 1先根序遍历的递归算法定义 若二叉树非空则依次执行如下操作 ⑴ 访问根结点 ⑵ 遍历左子树 ⑶ 遍历右子树。 2中根序遍历的递归算法定义 若二叉树非空则依次执行如下操作 ⑴遍历左子树 ⑵访问根结点 ⑶遍历右子树。 3后根序遍历得递归算法定义 若二叉树非空则依次执行如下操作 ⑴遍历左子树 ⑵遍历右子树 ⑶访问根结点。 线索二叉树 按照某种遍历方式对二叉树进行遍历可以把二叉树中所有节点排列为一个线性序列。在该序列中除第一个节点外每个节点有且仅有一个直接前驱节点除最后一个节点外每个节点有且仅有一个直接后继节点。但是二叉树中每个节点在这个序列中的直接前驱节点和直接后继节点是什么二叉树的存储结构中并没有反映出来只能在对二叉树遍历的动态过程中得到这些信息。为了保留节点在某种遍历序列中直接前驱和直接后继的位置信息可以利用二叉树的二叉链表存储结构中的那些空指针域来指示。这些指向直接前驱节点和指向直接后继节点的指针被称为线索thread加了线索的叉树称为线索二叉树 。 刷题 1.【问题描述】已知二叉树的先序遍历序列和中序遍历序列二叉树中元素类型为字符类型元素个数不超过20输出该二叉树的后序遍历序列并输出该二叉树的高度和叶子节点数 #include iostream #include stringusing namespace std;struct TreeNode {char val;TreeNode *left;TreeNode *right;TreeNode(char x) : val(x), left(NULL), right(NULL) {} };int findInorderIndex(const string inorder, int start, int end, char target) {for (int i start; i end; i){if (inorder[i] target){return i;}}return -1; }TreeNode *buildTree(const string preorder, int preIndex,const string inorder, int inStart, int inEnd) { if (preIndex preorder.length() || inStart inEnd){return NULL;}char rootValue preorder[preIndex];TreeNode *root new TreeNode(rootValue);preIndex;int rootIndex findInorderIndex(inorder, inStart, inEnd, rootValue);root-left buildTree(preorder, preIndex, inorder, inStart, rootIndex - 1);root-right buildTree(preorder, preIndex, inorder, rootIndex 1, inEnd);return root; }string buildPostOrder(TreeNode *root) {if (!root){return ;}return buildPostOrder(root-left) buildPostOrder(root-right) root-val; }int treeHeight(TreeNode *root) {if (!root){return 0;}int leftHeight treeHeight(root-left);int rightHeight treeHeight(root-right);return 1 max(leftHeight, rightHeight); }int leafNodeCount(TreeNode *root) {if (!root){return 0;}if (!root-left !root-right){return 1;}return leafNodeCount(root-left) leafNodeCount(root-right); }int main() {string preorder, inorder;cin preorder;cin inorder;int preIndex 0;TreeNode *root buildTree(preorder, preIndex, inorder, 0, inorder.length() - 1);string postorder buildPostOrder(root);cout postorder endl;int height treeHeight(root);int leafNodeCountValue leafNodeCount(root);cout height leafNodeCountValueendl;return 0; }2.【问题描述】已知二叉树的后序遍历序列和中序遍历序列二叉树中元素类型为字符类型输出该二叉树的层次遍历序列。 #include iostream #include queueusing namespace std;struct TreeNode {char val;TreeNode *left;TreeNode *right;TreeNode(char x) : val(x), left(NULL), right(NULL) {} };int findInorderIndex(const string inorder, int start, int end, char target) {for (int i start; i end; i){if (inorder[i] target){return i;}}return -1; }TreeNode *buildTree(const string inorder, const string postorder,int inStart, int inEnd, int postStart, int postEnd) {if (inStart inEnd || postStart postEnd){return NULL;}char rootValue postorder[postEnd];TreeNode *root new TreeNode(rootValue);int rootIndex findInorderIndex(inorder, inStart, inEnd, rootValue);int leftSubtreeSize rootIndex - inStart;root-left buildTree(inorder, postorder, inStart, rootIndex - 1,postStart, postStart leftSubtreeSize - 1);root-right buildTree(inorder, postorder, rootIndex 1, inEnd,postStart leftSubtreeSize, postEnd - 1);return root; }void levelOrderTraversal(TreeNode *root) {if (!root){return;}queueTreeNode * q;q.push(root);while (!q.empty()){TreeNode *current q.front();q.pop();cout current-val;if (current-left){q.push(current-left);}if (current-right){q.push(current-right);}} }int main() {string inorder, postorder;cin postorder;cin inorder;TreeNode *root buildTree(inorder, postorder, 0, inorder.length() - 1,0, postorder.length() - 1);levelOrderTraversal(root);cout endl;return 0; }后序遍历的非递归方式实现 #include iostream #include stack #include stringusing namespace std;struct TreeNode {char val;TreeNode *left;TreeNode *right;TreeNode(char x) : val(x), left(NULL), right(NULL) {} };TreeNode *buildTree(const string preorder, const string inorder,int preStart, int preEnd, int inStart, int inEnd) {if (preStart preEnd || inStart inEnd){return NULL;}char rootValue preorder[preStart];TreeNode *root new TreeNode(rootValue);int rootIndex;for (rootIndex inStart; rootIndex inEnd; rootIndex){if (inorder[rootIndex] rootValue){break;}}int leftSubtreeSize rootIndex - inStart;root-left buildTree(preorder, inorder, preStart 1, preStart leftSubtreeSize,inStart, rootIndex - 1);root-right buildTree(preorder, inorder, preStart leftSubtreeSize 1, preEnd,rootIndex 1, inEnd);return root; }string postorderTraversal(TreeNode *root) {string result;if (!root){return result;}stackTreeNode * s;TreeNode *lastVisited NULL;while (root || !s.empty()){while (root){s.push(root);root root-left;}TreeNode *topNode s.top();if (topNode-right topNode-right ! lastVisited){root topNode-right;}else{result topNode-val;s.pop();lastVisited topNode;}}return result; }int main() {string preorder, inorder;cin preorder;cin inorder;TreeNode *root buildTree(preorder, inorder, 0, preorder.length() - 1,0, inorder.length() - 1);string postorder postorderTraversal(root);cout postorder endl;return 0; }二叉树先序遍历非递归实现 #include iostream #include stack #include stringusing namespace std;struct TreeNode {char val;TreeNode *left;TreeNode *right;TreeNode(char x) : val(x), left(NULL), right(NULL) {} };TreeNode *buildTree(const string inorder, const string postorder,int inStart, int inEnd, int postStart, int postEnd) {if (inStart inEnd || postStart postEnd){return NULL;}char rootValue postorder[postEnd];TreeNode *root new TreeNode(rootValue);int rootIndex;for (rootIndex inStart; rootIndex inEnd; rootIndex){if (inorder[rootIndex] rootValue){break;}}int leftSubtreeSize rootIndex - inStart;root-left buildTree(inorder, postorder, inStart, rootIndex - 1,postStart, postStart leftSubtreeSize - 1);root-right buildTree(inorder, postorder, rootIndex 1, inEnd,postStart leftSubtreeSize, postEnd - 1);return root; }string preorderTraversal(TreeNode *root) {string result;if (!root){return result;}stackTreeNode * s;s.push(root);while (!s.empty()){TreeNode *current s.top();s.pop();result current-val;if (current-right){s.push(current-right);}if (current-left){s.push(current-left);}}return result; }int main() {string postorder, inorder;cin postorder;cin inorder;TreeNode *root buildTree(inorder, postorder, 0, inorder.length() - 1,0, postorder.length() - 1);string preorder preorderTraversal(root);cout preorder endl;return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

温州做网站公司哪家好最新新闻热点事件2023摘抄

抖音在国内是比较知名的短视频运营商,也有很大的流量市场。这块优化好了,不管是对于用户还是企业来说,在品牌宣传上来说,作用还是蛮大的。抖音优化和电脑端优化,还是有所区别的,这里参考的是点赞数、评论以…

旅游景区网站建设方案文档网站SEM优化如何做

我将uart_done(出问题的信号)的变量类型设为reg了,也就是我是reg uart_done这个信号的,这样做是错误的,哪怕你在接收模块确实定义的是reg类型,但是在顶层模块的时候,它可以视为是一条单纯的线而…

网站首页效果图怎么做怎么开通网络

【习题】三方库 判断题 三方组件是开发者在系统能力的基础上进行了一层具体功能的封装,对其能力进行拓展的工具 。 正确(True) 可以通过ohpm uninstall 指令下载指定的三方库 错误(False) lottie使用loadAnimation方法加载动画。 正确(True) 单选题 通过ohpm安…

做网站文章要一篇一篇的写吗北京网站设计制作飞沐

概念 决策树是一种树形结构 树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果 决策树的建立过程 1.特征选择:选取有较强分类能力的特征。 2.决策树生成:根据选择的特征生…

饰品 东莞网站建设wordpress qq登录

git rebase 命令简介 git rebase命令允许我们轻松地更改一系列提交,修改存储库的历史记录。我们可以重新排序、编辑或合并提交。一般常用git rebase来合并当前分支的多个commit记录(压缩)以及避免出现分支的交叉合并(变基&#x…

蚌埠网站关键词优化阿里巴巴企业网站怎么做

之前写的环行缓冲区文章柔性数组和环形队列之间的故事C语言,环形队列循环缓冲区是嵌入式软件工程师在日常开发过程中的关键组件。多年来,互联网上出现了许多不同的循环缓冲区实现和示例。我非常喜欢这个模块,可以GitHub上找到这个开源的 CBUF…

唐山企业网站建设公司个人网站开发技术

题干: 单测试点时限: 2.0 秒 内存限制: 1024 MB “我把房门上锁,并非为了不让她进去,而是为了防止自己逃到她身边”。 她又被数学难住了。QQ 小方当然是不会对女生说”不”的。 她的数学题是这样的,她得到了一个十进制大整数…

如何做淘宝网网站域名域名跳转wordpress

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西, 特别是在微服务架构中,几乎可以说是无法避免。 首先要搞清楚:ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

网站建设中所涉及的所有链接建设北京同仁医院眼科医生免费咨询

C语言,用函数封装:16进制打印unsigned char *p指向的内存,长度为int l。16个字节,换一次行。16个字节用一个字符串缓存,一次打印。 以下是一个使用函数封装的C语言代码,用于以16进制格式打印unsigned char …

江苏网站建站系统哪家好宁波网站建设运营

拥有一部适合办公的笔记本电脑,可以成为商务人士忙碌工作中强有力的支持。联想旗下的ThinkPad 系列笔记本电脑,一直秉持为高端商务人士服务的理念,以稳定、流畅、安全的使用体验得到广泛认可。其中的ThinkPad T14 锐龙版,更是有着…

网站理念中文企业网站设计欣赏

不良事件和条件可能会中断系统,导致系统无法提供必要的功能和服务。正如我在本系列的前几篇文章中所概述的那样,韧性是大多数系统的一个基本质量属性,因为它们提供了关键的能力和服务,尽管存在着不可避免的困难,但这些…

phpcms 适合什么的网站导购类网站如何做会员互动

“ Advanced ”选项卡 “ Advanced ” ( 高级 ) 选项卡如下图所示。 在“ Advanced ”选项卡中提供了以下字段 : • “ Report ” ( 报告 ): 选中“ Advanced ”选项卡中的“ Cells to Analyze ” &…

运城做网站哪家好深圳专业网站建设定制

Android11适配已安装应用列表 之前做过已安装应用列表的适配,最近国内版SDK升级到33和隐私合规遇到很多问题,于是把已安装应用列表记录一下: 1、在Android11及以上的适配: package com.example.requestinsttallapplistdemoimpo…

站内seo优化发布页全部页面设计

目录 解法: 官方解法: 方法一:深度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 方法二:广度优先搜索 复杂度分析 时间复杂度: 空间复杂度: 给你两棵二叉树的根节点 p 和…

wap网站的未来郴州旅游

文章目录一:AQS简介二:了解AQS 上锁和释放锁的原理1:前言2:上锁(非公平锁)(1):我们从main主函数中点进去(2):从lock进入(3):找到非公平锁中的lock(4):查看acquire()方法(5):查看tryAcquire(arg)方法a:前言介绍b:进入ReentrantLock类中的nonfairTryAcquire方法(6):addWaiter(Nod…

建网站大公司搜索引擎优化的内容有哪些

后退N帧协议(GBN)一、后退N帧协议中的滑动窗口二、GBN发送方必须响应的三件事三、GBN接收方要做的事四、滑动窗口长度一、后退N帧协议中的滑动窗口 发送窗口:发送方维持一组连续的允许发送的帧的序号。 接收窗口:接收方维持一组连…

wnmp搭建后怎么做网站小程序游戏排名

文章目录 1. 介绍2. 使用2-1. 单击双击和长按2-2. 拖动和滑动2-3. 缩放 3. 注意点 1. 介绍 在 flutter 中,GestureDetector 是手势识别的组件,可以识别点击、双击、长按、拖动、缩放等手势事件,并且可以与子组件进行交互,构造函数…

设备建设网站永久免费网站建设系统

Vue 中简易封装网络请求(Axios),包含请求拦截器和响应拦截器 axios简介 Axios 是一个基于 promise 的网络请求库,可以用于浏览器和 node.js Axios官方中文文档 特性 从浏览器创建 XMLHttpRequests从 node.js 创建 http 请求支…