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

珠海网站优化公司企业oa系统哪个好

珠海网站优化公司,企业oa系统哪个好,网页登录界面制作,2023新闻头条最新消息今天创作不易#xff0c;感谢三连#xff01;#xff01; 一、选择题 1、某二叉树共有 399 个结点#xff0c;其中有 199 个度为 2 的结点#xff0c;则该二叉树中的叶子结点数为#xff08; #xff09; A.不存在这样的二叉树 B.200 C.198 D.199解析#xff1a;选B感谢三连  一、选择题 1、某二叉树共有 399 个结点其中有 199 个度为 2 的结点则该二叉树中的叶子结点数为 A.不存在这样的二叉树 B.200 C.198 D.199解析选B根据n0n21的结论这个结论不清楚的看博主的关于二叉树概念的文章有证明就是度为0的节点始终比度为2的节点多一个所以这题就很显然选B了 2、在具有 2n 个结点的完全二叉树中叶子结点个数为 A n B n1 C n-1 D n/2解析选A 原因如下 3、一棵完全二叉树的节点数位为531个那么这棵树的高度为 A 11 B 10 C 8 D 12解析选B根据结论——满二叉树的节点N数量2^h-1,如果高度为8那么节点最多有255个当高度为10时节点最多有1023个所以高度只能是10 4、一个具有767个节点的完全二叉树其叶子节点个数为 A 383 B 384 C 385 D 386解析选B因为度为2的节点数肯定并度为0的节点数少1个所以n0和n2一个是奇数一个是偶数所以n1只能是偶数又因为完全二叉树n1只有可能是0或者1所以n1只能取0所以n0384n2383 5、一组记录排序码为(5 11 7 2 3 17),则利用堆排序方法建立的初始堆为。 A(11 5 7 2 3 17) B(11 5 7 2 17 3) C(17 11 7 2 3 5) D(17 11 7 5 3 2) E(17 7 11 3 5 2) F(17 7 11 3 2 5)解析选C 先画出来再不断向下调整 6、最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后其结果是 A[3257468] B[2357468] C[2345786] D[2345678] 解析选C还是画出来再调整 二、单值二叉树 OJ单值二叉树 bool isUnivalTree(struct TreeNode* root) {if(rootNULL)//abac-bcreturn true;if(root-leftroot-left-val!root-val)return false;if(root-rightroot-right-val!root-val)return false;return isUnivalTree(root-left)isUnivalTree(root-right); } 三、检查两棵树是否相同 OJ判断两棵树是否相同 这个在博主讲解二叉树链式存储中有仔细分析过了 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); } 四、对称二叉树 OJ对称二叉树 bool _isSymmetric(struct TreeNode* leftroot,struct TreeNode* rightroot) {//都为空对称if(leftrootNULLrightrootNULL)return true;//一个为空一个不为空不对称if(leftrootNULL||rightrootNULL)return false;//都不为空就可以看值了如果值不相等不对称if(leftroot-val!rightroot-val)return false;//此时都不为空且值相等就走递归找下一个//左树的左子树要跟右树的右子树相比//左树的右子树要跟右树的左子树相比return _isSymmetric(leftroot-left,rightroot-right)_isSymmetric(leftroot-right,rightroot-left); }bool isSymmetric(struct TreeNode* root) {if(rootNULL)return true;//根不对称就去找左右子树比 相当于是拆成两棵树的了return _isSymmetric(root-left,root-right); } 五、二叉树的前序遍历 OJ二叉树的前序遍历 int TreeSize(struct TreeNode* root) {return rootNULL?0:TreeSize(root-left)TreeSize(root-right)1; } void _preorder(struct TreeNode* root,int *a,int *i) {if(rootNULL)return ;a[(*i)]root-val;_preorder(root-left,a,i);_preorder(root-right,a,i); }int* preorderTraversal(struct TreeNode* root, int* returnSize) {//returnsize是结点数*returnSizeTreeSize(root);int *a(int *)malloc(*returnSize*sizeof(int));int i0;_preorder(root,a,i);return a; } 六、二叉树的中序遍历 OJ二叉树的中序遍历 int i0;int TreeSize(struct TreeNode* root) {return rootNULL?0:TreeSize(root-left)TreeSize(root-right)1; } void _inorderTraversal(struct TreeNode* root,int *a) {if(rootNULL)return ;_inorderTraversal(root-left,a);a[i]root-val;_inorderTraversal(root-right,a); } int* inorderTraversal(struct TreeNode* root, int* returnSize) {//returnsize是结点数*returnSizeTreeSize(root);int *a(int *)malloc(*returnSize*sizeof(int));i0;//全局变量一定要记得赋0_inorderTraversal(root,a);//必须构造新函数去递归因为在原函数递归会不断创建新的数组return a; } 注这题跟上题是差不多的我稍微改了一下这里数组的下标我不用指针去接受参数了而是直接设置一个全局变量i要注意的是因为力扣的测试可能会多次调用这个函数所以我们一定要在递归函数运行前让i0否则就会i就会一直叠加下去导致越界 还有一个注意事项就是这里千万不要使用静态的局部变量虽然他也同样可以在函数栈帧销毁时不被释放但是他的作用域很小不能让我们在主函数中让i0 但是尽量少使用全局变量 七、二叉树的后序遍历 OJ二叉树的后序遍历 void _postorder(struct TreeNode* root,int *arr,int *arrsize) {if(rootNULL)return;_postorder(root-left,arr,arrsize);_postorder(root-right,arr,arrsize);arr[(*arrsize)]root-val; }int* postorderTraversal(struct TreeNode* root, int* returnSize) {int *arr(int*)malloc(100*sizeof(int));*returnSize0;_postorder(root,arr,returnSize);return arr; } 注这题和前两题差不多但是又进行了改进我们发现了题目的一个条件 也就是说我们动态开辟100个空间的话是绝对不会越界的所以就不需要通过自己封装一个treesize函数来计算节点个数数量了 那我们要怎么去让returnsize返回节点个数的值的方法就是把*returnsize初始化为0作为下标每次放进一个值的时候*returnsize就会一次当后序遍历结束的时候returnsize恰好又多了一次正好表示节点个数的数量 八、另一颗树的子树 OJ另一颗树的子树 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;//为空就不比较的因为subRoot是至少有一个节点的。if(isSametree(root,subRoot))return true;return isSubtree(root-left, subRoot)||isSubtree(root-right, subRoot);//左子树和右子树只要有一个找到了就返回true } 关键就是我们每遍历到一个节点都要尝试把他往下遍历去和另外一个子树进行比较所以单独封装了一个比较两个树是否相同的函数该树每遍历一次节点就去调用一次最后在用||操作符因为左子树和右子树只要有一个找到就可以了 九、二叉树的构建及遍历 OJ二叉树的构建及遍历 typedef char BTDataType; typedef struct BTtreeNode {BTDataType val;struct BTtreeNode*left;struct BTtreeNode*right; }BTtreeNode;BTtreeNode* BuyNode(BTDataType x) {BTtreeNode*newnode(BTDataType*)malloc(sizeof(BTDataType));newnode-leftnewnode-rightNULL;newnode-valx;if(newnodeNULL){perror(malloc fail);exit(1);}return newnode; }BTtreeNode* CreateTree(BTDataType*a,int *pi) {if(a[*pi]#){(*pi);return NULL;}BTtreeNode*rootBuyNode(a[(*pi)]);root-leftCreateTree(a,pi);root-rightCreateTree(a,pi);return root; }void InOrder(BTtreeNode*root) {if(rootNULL)return;InOrder(root-left);printf(%c ,root-val);InOrder(root-right); }int main() {char arr[100];scanf(%s,arr);int i0;BTtreeNode*rootCreateTree(arr,i);InOrder(root);printf(\n);return 0; } 这题就是将二叉树的构建和链式结构的中序遍历结合起来了
http://www.hkea.cn/news/14381481/

相关文章:

  • c 做网站怎么显示歌词wordpress主动推送代码写在哪里
  • 十堰哪家网站制作公司技术好上海网站开发报价
  • 专做零食的网站模板网站代理
  • 南通专业网站建设python网站开发架构
  • 嵩明网站建设wordpress上线
  • 网站制作公司挣钱吗全国企业信息公示查询系统官网
  • 做粘土网站有没有学做衣服的网站
  • 网站改版是什么做羞羞的事的网站
  • 西安网站备案wordpress 指定
  • 微购物网站建设安阳县有多少个乡镇
  • 温州电子商务网站建设南宁比优建站
  • 合肥网站设计网址广州网站制作哪家全面
  • 智能建站技术网站页面制作多少钱
  • 简约商务ppt模板免费下载关键词优化排名易下拉软件
  • 黑龙江生产建设兵团各连网站中国建设银行江西分行网站首页
  • 重庆江津做网站网站增加栏目费用
  • 做公众号策划的网站烟台住房和规划建设局网站
  • 珠宝首饰网站源码怎样建设自己的网站
  • 鹿寨县建设局网站公众号网页源码
  • 5站合一 网站建设儋州市住房和城乡建设局官方网站
  • 企业网站建设产品设计书可以直接进入的正能量网站
  • 做音乐网站要什么源码网站qq访客统计
  • 成都网站设计网站制作公司网站建设结论与改进
  • 旬阳县建设局网站wordpress首页打不开内容页正常
  • 上海景观设计公司免费seo技术教程
  • wordpress 网站白屏做三维特效的好网站
  • 一家做运动鞋的网站好wordpress 缓存时间
  • 网站建设大约要多少钱做招聘网站赚钱吗
  • 海口制作手机网站深圳市住房和建设局高泉
  • 建设京东类的网站需要什么流程济南网站建设山东聚搜网推荐