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

西安app网站开发wordpress主题php详解

西安app网站开发,wordpress主题php详解,做个外贸网站,html5自适应网站模版1.单值二叉树 965. 单值二叉树 - 力扣#xff08;LeetCode#xff09; 建立一个新的函数#xff0c;用函数传参的方法来记录val的值 如上一篇最后的对称二叉树的习题#xff0c;建立新的函数来传参 多采用使用反对值的方法#xff0c;因为如果是相等return true的话LeetCode 建立一个新的函数用函数传参的方法来记录val的值 如上一篇最后的对称二叉树的习题建立新的函数来传参 多采用使用反对值的方法因为如果是相等return true的话没有实质性的作用  bool _isUnivalTree(struct TreeNode* root,const int val){if(rootNULL){return true;}if(root-val!val){return false;}return _isUnivalTree(root-left,val)_isUnivalTree(root-right,val);} bool isUnivalTree(struct TreeNode* root) {if(rootNULL){return true;}int valroot-val;return _isUnivalTree(root,val); } 2.前序遍历 144. 二叉树的前序遍历 - 力扣LeetCode 力扣的统一要求凡是返回数组一定要返回数组大小 这样还能真的返回returnSize的大小吗  经典的错误标准的零分传值调用 力扣是希望我们在函数内部修改好returnsize的值这样他才能查看数组的大小以便于访问。 那我们怎么确定这个值大小呢换句话问我们如何开辟这个空间呢  当然是不建议一次性开一个很大的数组来保证足够使用的。 我们可以模仿顺序表扩容的功能进行realloc或者直接写一个计数节点个数的函数此功能在上一篇中有讲。 问题出在哪  i成为一个局部变量每次的值都不会改变。 我们任然需要采用传址调用的方法 int TreeNodeSize(struct TreeNode* root){if(rootNULL){return 0;}return TreeNodeSize(root-left)TreeNodeSize(root-right)1; }void _preorderPut(struct TreeNode* root,int* arr,int* pi){//前序遍历的顺序是根左子树右子树if(rootNULL){return;}arr[(*pi)]root-val;_preorderPut(root-left,arr,pi);_preorderPut(root-right,arr,pi);}int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSizeTreeNodeSize(root);int* arr(int*)malloc(sizeof(int)*(*returnSize));//只创建一次数组即可所以真正的遍历还是应当使用子函数int i0;int* pii;_preorderPut(root,arr,pi);return arr; } 3.判断是否为子树 572. 另一棵树的子树 - 力扣LeetCode 为空、树的比较是最小子问题isSubtree(left or right)是递归子问题。 我们应该把这两个问题分开不要将树的比较嵌套进递归中而应该分隔开两个逻辑。此处树的比较非常类似于前面题目的                                                     root1-valroot2-val 只不过是将数值的比较换做了整个子树的比较我们直接复用之前写好的比较树的函数即可 利用之前的函数判断树是否相同。遍历主树将主树的每个值与subroot相比较。 一如既往在二叉树中空一直都是最小子问题但是此处的空该return false还是return true呢 根据题目描述root不可能为空  满足一次return true就会一直在 每一次函数调用的“isSubtree”语句上做返回层层返回直到返回到函数外部 bool isSameTree(struct TreeNode* root, struct TreeNode* subRoot){if(rootNULL subRootNULL){return true;}if(rootNULL || subRootNULL){return false;}if(root-val!subRoot-val){return false;}return isSameTree(root-left,subRoot-left)isSameTree(root-right,subRoot-right); }bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){if(rootNULL){return false;}if(root-valsubRoot-valisSameTree(root,subRoot)){return true;}return isSubtree(root-left,subRoot)||isSubtree(root-right,subRoot); } 4.二叉树的创建和销毁非递归 二叉树遍历_牛客题霸_牛客网 (nowcoder.com) 这个题完成创建 #include stdio.h #include stdlib.htypedef struct BTNode {struct BTNode* left;struct BTNode* right;char val; }BTNode;BTNode* CreatTree(char* arr, int* pi) {if (arr[*pi] #) {(*pi);return NULL;}BTNode* newnode (BTNode*)malloc(sizeof(BTNode));newnode-val arr[(*pi)];newnode-left CreatTree(arr, pi);newnode-right CreatTree(arr, pi);return newnode; }void Inorder(BTNode* tree, char* arr) {//中序是左子树 根 右子树if (tree NULL) {return;}Inorder(tree-left, arr);printf(%c , tree-val);Inorder(tree-right, arr); }int main() {char arr[100];scanf(%s, arr);int i 0;BTNode* tree CreatTree(arr, i);Inorder(tree, arr);return 0; } 二叉树的销毁 前序也能销毁但是很麻烦需要变量记录指针。 后序更佳 后序队列利用队列的先进先出 采取出来一个带入自己的左右子节点  注意声明和定义的分离 将树节点指针当作队列节点的值放入队列中。
http://www.hkea.cn/news/14391170/

相关文章:

  • 三杰网站建设网站首页新闻模板
  • 网站域名空间合同临安做网站的公司
  • 设计网站需要的知识百度seo如何优化
  • 网站留言板漏洞广州手机网站建设费用
  • 营销型网站的名词解释北京网上注册公司
  • 能支持微信公众号的网站建设为什么seo工资不高
  • 招聘网站做沙龙佛山网站推广 优帮云
  • 如何做自己的网站后台python语言基础知识
  • 青岛vps网站网站建设教程突
  • 鞍山外国网站制作公司网站设计基础任务书
  • 网站开发部门结构郑州建网站的公司
  • wordpress 判断首页网站seo策划方案
  • 深圳 赢客创想网络技术股份有限公司 网站建设提高网站关键词排名
  • 大宇网络做网站怎么样慧聪网首页
  • 网站管理建设总结linux软件开发
  • 厦门百度整站优化服务青岛网站建设系统
  • 网站内容建设和运营工作写网站论文怎么做
  • 谷歌英文网站优化邢台网站制作哪里做
  • 青岛外贸网站建设费用坪地网站建设效果
  • 互联网企业信息服务平台aso应用优化
  • 购物网站开发价格俄文网站建设 俄文网站设计
  • 邯郸住房及城乡建设部网站大学专业分类目录
  • 川制作官方网站自己做网站如何放置在服务器中
  • 代理龙华网站建设南京做网站的有哪些
  • 青岛网站推广招商外贸wap网站
  • 网站彩票做号宿迁企业网站设计
  • 做互联网网站待遇山西网站开发建设
  • 永久一级传奇网站江苏省建设工程一站式申报网站
  • wamp在网站建设中的功能及协作关系网上怎么推销自己的产品
  • 仿韩国网站源码义乌网站制作公司