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

广州网站制作费用美颂雅庭装饰公司电话

广州网站制作费用,美颂雅庭装饰公司电话,怎么注册公司名称,优秀企业宣传册样本1 树的序遍历 前序遍历、中序遍历、后序遍历 1.1 遍历方式 都有点抽象#xff0c;需要结合代码和画图来看 递归遍历非递归遍历#xff1a;都是用栈来解决 前序遍历 用一个栈#xff0c;先进右再进左 中序遍历 用一个栈#xff0c;先进左#xff0c;左出#xff0c;再…1 树的序遍历 前序遍历、中序遍历、后序遍历 1.1 遍历方式 都有点抽象需要结合代码和画图来看 递归遍历非递归遍历都是用栈来解决 前序遍历 用一个栈先进右再进左 中序遍历 用一个栈先进左左出再进右 后序遍历 用两个栈一个栈和前序遍历反着来出的元素进另一个栈进完之后全打印用一个栈先解决左边的再解决右边的。 1.2 代码实现 public class RecursiveTraversalBT {public static class Node {public int val;public Node left;public Node right;public Node(int val){this.val val;}}// 递归遍历public static void pre1(Node head) {if (head null) {return;}System.out.print(head.val );pre1(head.left);pre1(head.right);}public static void in1(Node head) {if (head null) {return;}in1(head.left);System.out.print(head.val );in1(head.right);}public static void pos1(Node head) {if (head null) {return;}pos1(head.left);pos1(head.right);System.out.print(head.val );}// 非递归遍历栈public static void pre2(Node head) {if (head ! null) {StackNode stack new Stack();stack.push(head);while (!stack.isEmpty()) {head stack.pop();System.out.print(head.val );if (head.right ! null) {stack.push(head.right);}if (head.left ! null) {stack.push(head.left);}}}}public static void in2(Node head) {if (head ! null) {StackNode stack new Stack();while (!stack.isEmpty() || head ! null) {if (head ! null) {stack.push(head);head head.left;}else {head stack.pop();System.out.print(head.val );head head.right;}}}}public static void pos2(Node head) {if (head ! null) {StackNode stack1 new Stack();StackNode stack2 new Stack();stack1.push(head);while (!stack1.isEmpty()){head stack1.pop();stack2.push(head);if (head .left ! null) {stack1.push(head.left);}if (head .right ! null) {stack1.push(head.right);}}while (!stack2.isEmpty()) {System.out.print(stack2.pop().val );}}}// 后序遍历的第三种写法只用一个栈public static void pos3(Node head) {if (head ! null) {StackNode stack new Stack();stack.push(head);Node help null;while (!stack.isEmpty()) {help stack.peek();if (help.left !null head ! help.left head ! help.right){stack.push(help.left);} else if (help.right ! null head ! help.right) {stack.push(help.right);}else {System.out.print(stack.pop().val );head help;}}}}public static void main(String[] args) {Node head new Node(1);head.left new Node(2);head.right new Node(3);head.left.left new Node(4);head.left.right new Node(5);head.right.left new Node(6);head.right.right new Node(7);pos2(head);System.out.println();pos3(head);System.out.println();} }2 树的层遍历 2.1 遍历方式 树的最宽层有几个节点 借助Map来查找 定义一个队列和一个HashMap都把头节点放进去其中Map中存放的是当前节点和其对应的层数每次弹出一个节点就把这个节点的左右子节点都放进队列和对应的Map如果还没到下一层那么当前层的节点数就要加一如果到了下一层就把上一层的节点数和之前层的节点数比较返回节点数最多的层的节点数 只用队列 定义一个当前层的最左节点一个下一层的最左节点当弹出的节点等于当前层最左节点时记录当前层节点数并与之前层的最大节点数比较哪个大留哪个这个时候就要进入下一次所以当前层节点数置为0当前层最左节点置为下一层最左节点 4.2.2 代码实现 public class TreeMaxWidth {public static class Node {public int val;public Node left;public Node right;public Node(int val) {this.val val;left null;right null;}}public static int maxWidthUseMap(Node head) {if (head null) {return 0;}QueueNode queue new LinkedList();queue.add(head);HashMapNode, Integer hashMap new HashMap();hashMap.put(head, 1);int curLevelNodes 0;int curLevel 1;int max 0;while (!queue.isEmpty()) {Node cur queue.poll();int curNodeLevel hashMap.get(cur);if (cur.left ! null) {queue.add(cur.left);hashMap.put(cur.left, curNodeLevel 1);}if (cur.right ! null) {queue.add(cur.right);hashMap.put(cur.right, curNodeLevel 1);}if (curLevel curNodeLevel) {curLevelNodes;}else {max Math.max(max, curLevelNodes);curLevel;curLevelNodes 1;}}max Math.max(max, curLevelNodes);return max;}public static int maxWidthNoMap (Node head) {if (head null) {return 0;}QueueNode queue new LinkedList();queue.add(head);Node curEnd head;Node nextEnd null;int max 0;int curLevelNodes 0;while (!queue.isEmpty()) {Node cur queue.poll();if (cur.left ! null) {queue.add(cur.left);nextEnd cur.left;}if (cur.right ! null) {queue.add(cur.right);nextEnd cur.right;}curLevelNodes;if (cur curEnd) {max Math.max(max, curLevelNodes);curLevelNodes 0;curEnd nextEnd;}}return max;}public static void main(String[] args) {Node head new Node(1);head.left new Node(2);head.right new Node(3);head.left.left new Node(4);head.left.right new Node(5);head.right.left new Node(6);head.right.right new Node(7);head.left.right.left new Node(8);head.right.left.right new Node(9);System.out.println(maxWidthNoMap(head));} }
http://wiki.neutronadmin.com/news/184127/

相关文章:

  • 建站快车打电话外贸流程知乎
  • 做投票的网站赚钱嘛创意100图片欣赏
  • 数据网站建设哪个好智慧城市
  • 未备案个人网站 如何挣钱公司如何做网站
  • 上海建设牌电动三轮官方网站门户网站建设模式包括网站群和
  • 怎么制作公司自己网站wordpress高仿dz模板
  • 鞋业有限公司网站设计大型的网站建设公司
  • 网站的切图是谁来做济宁网络
  • 在线免费网站排名优化做网站销售说辞
  • 门户网站后台管理系统模板免费制作自己的网站
  • 江苏优化网站关键词新商盟显示 检查网站开发错误呢
  • 深圳一定火网站建设cms企业网站管理系统
  • 深圳网站建设深圳网络公司威海城市 建设信息网站
  • 目前做网站流行的是什么10大免费软件下载
  • 惠州网站建设系统广告设计图片网站
  • 郑州flash网站建设凡科互动投票破解
  • 用家用路由器ip做网站app开发公司怎么选
  • wordpress有多少网站网站建设教程最新资讯
  • 建设公司网站费用怎么做账wordpress个人博客主题好看
  • 杭州建设网站职称人才工作专题天元建设集团有限公司设计研究院征求意见
  • 深圳企业网站制作设计腾讯微校怎么做微网站
  • 如何搭建英文网站哪些网站可以免费做简历
  • 北京做网站公司专业团队电脑壁纸
  • 建设网站的合同南川网站建设
  • 广汉手机网站设计好男人视频在线观看免费直播
  • 企业网站设计图设计 中国官网
  • 技术支持 张家港网站建设舒城县重点工程建设局网站
  • 网站跟app的区别是什么织梦网站统计代码
  • 如何创建个人网站赚钱深圳专业做网页的公司
  • 山东做网站建设公司哪家好丹阳网站制作