Friday, February 21, 2020

how to use Queue to implement a binary searh true Level Order algorithm?

Currently i had joined the Hackerrank challenag for 30 days

today i got a very interesting topic to use Queue to implement the level Order function

using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; class Node{ public Node left,right; public int data; public Node(int data){ this.data=data; left=right=null; } } class Solution{ static void levelOrder(Node root){ Queue<Node> nodeQueue=new Queue<Node>(); if(root !=null){ nodeQueue.Enqueue(root); } while(nodeQueue.Count>0){ Node current=nodeQueue.Dequeue(); Console.Write($"{current.data} "); if(current.left !=null){ nodeQueue.Enqueue(current.left); } if(current.right !=null){ nodeQueue.Enqueue(current.right); } } } static Node insert(Node root, int data){ if(root==null){ return new Node(data); } else{ Node cur; if(data<=root.data){ cur=insert(root.left,data); root.left=cur; } else{ cur=insert(root.right,data); root.right=cur; } return root; } } static void Main(String[] args){ Node root=null; int T=Int32.Parse(Console.ReadLine()); while(T-->0){ int data=Int32.Parse(Console.ReadLine()); root=insert(root,data); } levelOrder(root); } }

No comments:

Post a Comment