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

c 网站建设步骤perl 网站开发

c 网站建设步骤,perl 网站开发,sem推广竞价,iis网站权限二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。前序遍历(根 左 右)先访问根结点,然后前序遍历左子树…

二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。

前序遍历(根 左 右)

先访问根结点,然后前序遍历左子树,再前序遍历右子树

中序遍历(左 根 右)

中序遍历根结点的左子树,然后访问根结点,最后遍历右子树

后序遍历(左 右 根)

从左到右先叶子后结点的方式遍历访问左右子树,最后访问根结点

层级遍历(从上到下 从左到右)

从根结点从上往下从左往右依次遍历

思路

非递归:

前序遍历:从根节点开始,首先将根节点压入栈中,栈不为空进行出栈并打印结点的value数值,然后将该结点的不为空的右结点和左结点依次进行入栈操作重复直到栈为空。

后序遍历:从根节点开始,首先将根节点压入栈中,栈不为空进行出栈并入栈到另一个栈中,然后将该结点的不为空的左结点和右结点依次进行入栈操作重复直到栈为空。然后遍历另一个栈进行出栈并打印结点的值。

中序遍历:从根节点开始将该结点以及它的左边界依次进行入栈,当该结点为null时,然后进行出栈操作,打印出栈结点的value数值,并入栈弹出结点的右结点,然后重复上述步骤,继续入栈该结点的左边界直到为空。。。。

层次遍历:从根节点放入队列,队列不为空的时候进行出队列并打印该结点的value数值,然后依次将该结点的左结点和右结点进行放入队列,一直重复直到队列为空。

代码

Node结点

public class Node<V> {V value;public Node(V value) {this.value = value;}public Node left;public Node right;
}

遍历代码

public class Tree {//递归先序遍历public static void preOrder1(Node head){if(head!=null){System.out.print(head.value+" ");preOrder1(head.left);preOrder1(head.right);}}//先序遍历public static void preOrder(Node head){if(head!=null){Stack<Node> stack=new Stack<>();stack.add(head);//压到栈尾while (!stack.empty()){head=stack.pop();System.out.print(head.value+" ");if(head.right!=null)stack.push(head.right);if(head.left!=null)stack.push(head.left);}}System.out.println();}//后序遍历public static void postOrder(Node head){if(head!=null){Stack<Node> stack1=new Stack<>();Stack<Node> stack2=new Stack<>();stack1.push(head);while (!stack1.empty()){head = stack1.pop();stack2.push(head);if(head.left!=null)stack1.push(head.left);if(head.right!=null)stack1.push(head.right);}while (!stack2.empty()){Node pop = stack2.pop();System.out.print(pop.value+" ");}System.out.println();}}//中序遍历public static void inOrder(Node head){Stack<Node> stack=new Stack<>();while (!stack.empty()||head!=null){if(head!=null){stack.push(head);head=head.left;}else {head=stack.pop();System.out.print(head.value+" ");head=head.right;}}System.out.println();}//层次遍历public static void widthOrder(Node head){if(head!=null){Queue<Node> queue=new LinkedList<>();queue.add(head);while (!queue.isEmpty()){Node poll = queue.poll();System.out.print(poll.value+" ");if(poll.left!=null)queue.add(poll.left);if(poll.right!=null){queue.add(poll.right);}}}System.out.println();}}
http://www.yayakq.cn/news/110772/

相关文章:

  • 微股东微网站制作平台dedecms学校网站模板
  • 0000网站建设有没有什么做高数的网站
  • 顺义青岛网站建设在线画图工具
  • 出国越南做网站8000保底福州免费做网站
  • 怎样建立网站ip地址wordpress 文章美化
  • 用dw自己做网站重庆森林粤语
  • 如何做返利网站宁波市北仑区建设局网站
  • 作文网投稿网站可以做公众号封面图的网站
  • 悟空crm永久免费了杭州seo网站优化公司
  • 团队网站建设企业网站需要注意什么
  • 西宁网站网站建设承德市人才信息网
  • 建站点怎么做网站某网站做参考文献的书写
  • 网站模版怎么编辑器瓷器网站源码
  • 做农宿的网站网络营销战略规划
  • 网站关键词排名不稳定有什么网站可以发布个人信息
  • 要给公司做一个网站怎么做的吗大丰做网站哪家最好
  • 广州php网站建设昆明网站建设 昆明光硕
  • 淘客手机端网站建设进京服务的链接
  • 网站的交流的功能怎么做电商网站怎么做聚合
  • 做网站建设多少钱响应网站建设
  • 在线音乐网站怎么做深圳策划公司排名
  • 网站管理和建设工作职责全国建造师信息查询网
  • 百度站长平台怎么验证网站网站域名申请流程
  • 武隆网站建设公司深圳市建设招标网
  • 马家堡做网站的公司除了seo还可以做哪些推广呢
  • 枣阳网站建设等服务wordpress音悦台
  • 餐饮加盟什么网站建设55建筑网官网
  • 网站301在哪里做九江巿建设局网站
  • 给公司做网站销售怎样啦dede网站安全设置防挂马教程
  • 神东集团网站建设网站建设具体步骤