Advertisement
Guest User

Untitled

a guest
Jan 4th, 2011
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.01 KB | None | 0 0
  1. using System;
  2.  
  3. namespace bst
  4. {
  5.     public class Node
  6.     {
  7.         public int value;
  8.         public Node Right = null;
  9.         public Node Left = null;
  10.        
  11.         public Node(int value)
  12.         {
  13.             this.value = value;
  14.         }
  15.     }
  16.    
  17.     public class BST
  18.     {
  19.         public Node Root = null;
  20.        
  21.         public BST()
  22.         {
  23.         }
  24.        
  25.         public void Add(int new_value)
  26.         {
  27.             if(Search(new_value))
  28.             {
  29.                 Console.WriteLine("Zadaná value (" + new_value + ") se ve stromu už nachází");
  30.             }
  31.             else
  32.             {
  33.                 AddNode(this.Root,new_value);
  34.             }
  35.            
  36.         }
  37.        
  38.         public void AddNode(Node Actual, int new_value)
  39.         {
  40.                 if(Actual == null)
  41.                 {
  42.                     Actual = new Node(new_value);
  43.                 }
  44.                 else if(new_value < Actual.value)
  45.                 {
  46.                     AddNode(Actual.Left,new_value);
  47.                 }
  48.                 else if(new_value > Actual.value)
  49.                 {
  50.                     AddNode(Actual.Right,new_value);
  51.                 }
  52.            
  53.         }
  54.        
  55.        
  56.         public bool Search(int hledane)
  57.         {
  58.             Node Actual = this.Root;
  59.            
  60.             while(Actual != null)
  61.             {
  62.                 if(hledane < Actual.value)
  63.                 {
  64.                     Actual = Actual.Left;
  65.                 }
  66.                 else if(hledane > Actual.value)
  67.                 {
  68.                     Actual = Actual.Right;
  69.                 }
  70.                 else
  71.                 {
  72.                     return true;
  73.                 }
  74.             }
  75.             return false;
  76.            
  77.         }
  78.        
  79.         public void Display()
  80.         {
  81.             DisplayUndertree(this.Root,0);
  82.         }
  83.        
  84.         public void DisplayUndertree(Node EnterNode, int deep)
  85.         {
  86.             if(EnterNode != null)
  87.             {
  88.                 for(int i=1; i<=deep; i++)
  89.                 {
  90.                     Console.Write("\t");
  91.                 }
  92.                 Console.WriteLine(EnterNode.value);
  93.             }
  94.            
  95.             if(EnterNode.Left != null)
  96.             {
  97.                 DisplayUndertree(EnterNode.Left,deep+1);
  98.             }
  99.            
  100.             if(EnterNode.Right != null)
  101.             {
  102.                 DisplayUndertree(EnterNode.Right,deep+1);
  103.             }
  104.         }
  105.     }
  106.    
  107.     class Program
  108.     {
  109.         public static void Main(string[] args)
  110.         {
  111.             BST strom = new BST();
  112.             Console.WriteLine(strom.Search(5));
  113.             strom.Add(5);
  114.             Console.WriteLine(strom.Search(5));
  115.             Console.WriteLine(strom.Root.value);
  116.            
  117.            
  118.             //strom.Display();
  119.            
  120.             Console.Write("Press any key to continue . . . ");
  121.             Console.ReadKey(true);
  122.         }
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement