当前位置: 首页 > news >正文

免费网站在哪里申请怎么网站设计

免费网站在哪里申请,怎么网站设计,男女做那个的的视频网站,wordpress 多说插件前言 前面详细讲述了二叉树的相关知识#xff0c;为了巩固#xff0c;做一些相关的练习题 文章目录 前言1.某二叉树共有 399 个结点#xff0c;其中有 199 个度为 2 的结点#xff0c;则该二叉树中的叶子结点数为#xff1f;2.下列数据结构中#xff0c;不适合采用顺序存…前言 前面详细讲述了二叉树的相关知识为了巩固做一些相关的练习题 文章目录 前言1.某二叉树共有 399 个结点其中有 199 个度为 2 的结点则该二叉树中的叶子结点数为2.下列数据结构中不适合采用顺序存储结构的是3.在具有 2n 个结点的完全二叉树中叶子结点个数为4.一棵完全二叉树的节点数位为531个那么这棵树的高度为5.一个具有767个节点的完全二叉树其叶子节点个数为6.单值二叉树7.相同的树8.对称二叉树9.二叉树的最大深度10.另一棵树的子树11.翻转二叉树12.二叉树的前序遍历12.1 二叉树的中序遍历12.2 二叉树的后序遍历 13.平衡二叉树14.在一颗度为3的树中度为3的结点有2个度为2的结点有1个度为1的结点有2个则叶子结点有 个15.设根结点的深度为1则一个拥有n个结点的二叉树的深度一定在 区间内16.一颗完全二叉树有1001个结点其叶子结点的个数是 17.一颗拥有1000个结点的树度为4则它的最小深度是 18.如果一颗二叉树的前序遍历的结果是ABCD则满足条件的不同的二叉树有 种19.已知某二叉树的前序遍历序列为5 7 4 9 6 2 1中序遍历序列为4 7 5 6 9 1 2则其后序遍历序列为 20.已知某二叉树的前序遍历序列为ABDEC中序遍历序列为BDEAC则该二叉树 21.已知某二叉树的中序遍历序列为JGDHKBAELIMCF后序遍历序列为JGKHDBLMIEFCA则其前序遍历序列为 在做题之前需要补充二叉树的一条性质对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为n2 ,则有 n0n2 1 1.某二叉树共有 399 个结点其中有 199 个度为 2 的结点则该二叉树中的叶子结点数为 A 不存在这样的二叉树 B 200 C 198 D 199 解析B 叶子节点即为度为0的节点由性质可知叶子结点数1991200 2.下列数据结构中不适合采用顺序存储结构的是 A 非完全二叉树 B 堆 C 队列 D 栈 解析A 3.在具有 2n 个结点的完全二叉树中叶子结点个数为 A n B n1 C n-1 D n/2 解析A 4.一棵完全二叉树的节点数位为531个那么这棵树的高度为 A 11 B 10 C 8 D 12 解析B 5.一个具有767个节点的完全二叉树其叶子节点个数为 A 383 B 384 C 385 D 386 解析B 6.单值二叉树 bool isUnivalTree(struct TreeNode* root) {if (rootNULL)return true;if (root-left!NULLroot-left-val!root-val)return false;if (root-right!NULLroot-right-val!root-val)return false;return isUnivalTree(root-left)isUnivalTree(root-right); }解析 如果树为空那么并不违反规则。 如果树的左边不为空并且左边的值不等于root的值那么错误。右边同理。 最后对左子树和右子树递归调用 7.相同的树 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (pNULLqNULL)return true;if (pNULLq!NULL)return false;if (qNULLp!NULL)return false;if (p-val!q-val)return false;return isSameTree(p-left,q-left)isSameTree(p-right,q-right); }解析先把几种特殊情况写了就是pq都为空p空q不空q空p不空pq都不空但值不相等。 写完了几种特殊情况就可以递归左子树和右子树判断了 8.对称二叉树 bool doubleisSymmetric(struct TreeNode* root1,struct TreeNode* root2) {if (root1NULLroot2NULL)return true;if (root1NULL||root2NULL)return false;if (root1-val!root2-val)return false;return doubleisSymmetric(root1-left,root2-right)doubleisSymmetric(root1-right,root2-left); }bool isSymmetric(struct TreeNode* root) {return doubleisSymmetric(root-left,root-right); }解析 9.二叉树的最大深度 int maxDepth(struct TreeNode* root) {return (rootNULL)?0:fmax(maxDepth(root-left),maxDepth(root-right))1; }解析 用一个三目就可以解决如果为空深度就为0否则的话遍历左子树和右子树遍历一次1一直到底左边和右边谁打谁就是深度。 10.另一棵树的子树 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (pNULLqNULL)return true;if (pNULL||qNULL)return false;if (p-val!q-val)return false;return isSameTree(p-left,q-left)isSameTree(p-right,q-right); }bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot) {if(rootNULL)return false;if (root-valsubRoot-val){if (isSameTree(root,subRoot))return true;}return isSubtree(root-left,subRoot)||isSubtree(root-right,subRoot); }11.翻转二叉树 第一次写是这样的但是发现这样写麻烦了没必要直接写个swap函数还调用二级指针麻烦 void swap(struct TreeNode** a, struct TreeNode** b) {struct TreeNode* temp *a;*a *b;*b temp; }struct TreeNode* invertTree(struct TreeNode* root) {if (root NULL)return NULL;swap((root-left), (root-right));invertTree(root-left);invertTree(root-right);return root; }修改一下看着简单舒服多了 struct TreeNode* invertTree(struct TreeNode* root) {if (root NULL) return NULL;struct TreeNode* temp;temproot-left;root-leftroot-right;root-righttemp;invertTree(root-left);invertTree(root-right);return root; }到这里这个级别的代码就应该不需要解析了吧都能看懂。 12.二叉树的前序遍历 void preorder(struct TreeNode* root, int* res, int* resSize) {//root当前节点的指针。//res存储遍历结果的数组。//resSize指向遍历结果数组元素个数的指针。if (root NULL) return;res[(*resSize)] root-val;preorder(root-left, res, resSize);preorder(root-right, res, resSize); }int* preorderTraversal(struct TreeNode* root, int* returnSize) {int* res malloc(sizeof(int) * 2000);*returnSize 0;preorder(root, res, returnSize);return res; }12.1 二叉树的中序遍历 void inorder(struct TreeNode* root, int* res, int* resSize) {//root当前节点的指针。//res存储遍历结果的数组。//resSize指向遍历结果数组元素个数的指针。if (root NULL) return;inorder(root-left, res, resSize);res[(*resSize)] root-val;inorder(root-right, res, resSize); }int* inorderTraversal(struct TreeNode* root, int* returnSize) {int* res malloc(sizeof(int) * 2000);*returnSize 0;inorder(root, res, returnSize);return res; }12.2 二叉树的后序遍历 void postorder(struct TreeNode* root, int* res, int* resSize) {//root当前节点的指针。//res存储遍历结果的数组。//resSize指向遍历结果数组元素个数的指针。if (root NULL) return;postorder(root-left, res, resSize);postorder(root-right, res, resSize);res[(*resSize)] root-val; }int* postorderTraversal(struct TreeNo de* root, int* returnSize) {int* res malloc(sizeof(int) * 2000);*returnSize 0;postorder(root, res, returnSize);return res; }这三道题如出一辙所以我把他们放到一起。代码都很简单大家应该都能看懂 13.平衡二叉树 int TreeHeight(struct TreeNode* root) {if (root NULL)return 0;int leftHeight TreeHeight(root-left);int rightHeight TreeHeight(root-right);return leftHeight rightHeight ? leftHeight 1 : rightHeight 1; }bool isBalanced(struct TreeNode* root) {if (root NULL)return true;else return fabs(TreeHeight(root-left) - TreeHeight(root-right)) 1 isBalanced(root-left) isBalanced(root-right); }解析: 先求二叉树的左高度和右高度然后递归返回来判断是否满足题意。 14.在一颗度为3的树中度为3的结点有2个度为2的结点有1个度为1的结点有2个则叶子结点有 个 A.4 B.5 C.6 D.7 解析C 15.设根结点的深度为1则一个拥有n个结点的二叉树的深度一定在 区间内 A.[log(n 1)n] B.[lognn] C.[log(n 1)n - 1] D.[log(n 1)n 1] 解析 最大深度 即每次只有一个节点次数二叉树的高度为n为最高的高度 最小深度 此树为完全二叉树 如果是完全二叉树 根据二叉树性质完全二叉树的高低为 h log(n1)向上取整 故答案为 [log(n 1)n] 16.一颗完全二叉树有1001个结点其叶子结点的个数是 A.251 B.500 C.501 D.不能确定 解析C 完全二叉树的最后一个结点的编号一定是1001则它的父结点的编号为1001/2500则叶子结点个数为1001-500501. 总结一下完全二叉树的最后一个结点的编号是n则它的父结点的编号为[n/2]则叶子结点个数为n-[n/2]。 17.一颗拥有1000个结点的树度为4则它的最小深度是 A.5 B.6 C.7 D.8 解析B 如果这棵树每一层都是满的则它的深度最小假设它为一个四叉树高度为h则这个数的节点个数为(4^h - 1) / 3当h 5, 最大节点数为341 当h 6, 最大节点数为1365所以最小深度应该为6。 18.如果一颗二叉树的前序遍历的结果是ABCD则满足条件的不同的二叉树有 种 A.13 B.14 C.15 D.16 解析B 19.已知某二叉树的前序遍历序列为5 7 4 9 6 2 1中序遍历序列为4 7 5 6 9 1 2则其后序遍历序列为 A.4 2 5 7 6 9 1 B.4 2 7 5 6 9 1 C.4 7 6 1 2 9 5 D.4 7 2 9 5 6 1 解析C 20.已知某二叉树的前序遍历序列为ABDEC中序遍历序列为BDEAC则该二叉树 A.是满二叉树 B.是完全二叉树不是满二叉树 C.不是完全二叉树 D.是所有的结点都没有右子树的二叉树 解析感觉有两种情况 B,C 21.已知某二叉树的中序遍历序列为JGDHKBAELIMCF后序遍历序列为JGKHDBLMIEFCA则其前序遍历序列为 A.ABDGHJKCEFILM B.ABDGJHKCEILMF C.ABDHKGJCEILMF D.ABDGJHKCEIMLF 解析B
http://www.zqtcl.cn/news/512443/

相关文章:

  • 做网站和做公众号资金盘网站怎么建设
  • 全国最好的网站建设案例推广方法视频
  • 嘉兴网站建设策划方案在海口注册公司需要什么条件
  • 旅游网站国际业务怎样做建设企业官方网站企业登录
  • 北京市昌平网站建设小米网络营销案例分析
  • 怎么利用360域名做网站微信商城怎么弄
  • 中山h5网站建设天津网站建设技术托管
  • 建网站买的是什么商城网站建设合同
  • 购物网站制作样例有没有专门学做婴儿衣服的网站
  • 济南网站建设 找小七买友情链接有用吗
  • 南阳网站建设域名公司泉州关键词排名seo
  • 网站建设在线推广宁夏快速自助制作网站
  • 专业网站建设好不好wordpress编辑文章更新失败
  • 河南郑州网站建设哪家公司好html5 网站正在建设中
  • 免费ppt模板下载医学类江门seo网站推广
  • 智慧软文网站群辉wordpress地址
  • 自己怎么做拼单网站外贸网站 源码
  • 做网站如何防止被黑网页无法访问如何解决360浏览器
  • 专门做设计的网站互联网运营培训班哪个好
  • 烟台网站建设网站推广做网站与数据库的关系
  • 深圳网站设计成功刻成全视频免费观看在线看第7季高清
  • 淮阳城乡建设局网站seo技术团队
  • 建设博客网站游戏交易类网站seo怎么做
  • 做系统软件的网站wordpress网站会员太多
  • 上海门户网站怎么登录网站开发竞价单页
  • 东莞市外贸网站建设公司软件开发 系统开发 网站开发服务
  • 泉州制作网站设计南宁网站排名外包
  • 南通网站建设入门wordpress google seo
  • 怎么建立图片的网站吗网站响应式是什么意思
  • 网站建设买了服务器后怎么做WordPress多城市