zoukankan      html  css  js  c++  java
  • 用C#写二叉数

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace BinaryTree
    {
       
    class Program
        {
           
    static void Main(string[] args)
            {
                BTree bt
    = new BTree();
                Node parent
    = null, current = null;
               
    int i = 1;
               
    while(i>0)
                {
                    Console.WriteLine(
    "Input an integer");
                    i
    = int.Parse(Console.ReadLine());
                    bt.find(i,
    ref parent, ref current);
                   
    if (current != null) Console.WriteLine("{0}Already exist!", i);
                   
    else
                    {
                        bt.addNew(i, parent, current);
                        Console.WriteLine(
    "{0} inserted!", i);
                    }
                };
               
    return;
            }
        }
       
    class Node
        {
           
    public int ivalue;
           
    public Node lchild;
           
    public Node rchild;

           
    public Node(int i, Node l, Node r)
            {
                ivalue
    = i;
                lchild
    = l;
                rchild
    = r;
            }
        }
       
    class BTree
        {
           
    public Node ROOT;
           
    public BTree()
            {
                ROOT
    = null;
            }

           
    public bool contain(int element)
            {
                Node parent
    = null, currentNode = null;
                find(element,
    ref parent, ref currentNode);
               
    if(currentNode == null) return false;
               
    return true;
            }
           
           
    public bool add(int element)
            {
                Node tmp, parent
    = null, currentNode = null;
                find(element,
    ref parent, ref currentNode);
               
    if(currentNode != null)
                {
                   
    return false;   // already there
                }
               
    else
                {
                    tmp
    = new Node(element, null, null);
                   
    if(parent == null) // empty tree
                        ROOT = tmp;
                   
    else
                       
    if(element<parent.ivalue)
                            parent.lchild
    =tmp;
                       
    else   
                            parent.rchild
    = tmp;
                }
               
    return true;
            }

           
    // must make sure that the value is not in the tree
            public void addNew(int element, Node parent, Node currentNode)
            {
               
    //if(currentNode != null) return false;
                Node tmp;
               
    // currentNode should be null
                tmp = new Node(element, null, null);
               
    if (parent == null) // empty tree
                    ROOT = tmp;
               
    else
                   
    if (element < parent.ivalue)
                        parent.lchild
    = tmp;
                   
    else
                        parent.rchild
    = tmp;
            }
                       
           
    public void find(int element, ref Node parent, ref Node currentNode)
            {
                currentNode
    = ROOT;
                parent
    = null;
               
    while ((currentNode != null) && (currentNode.ivalue != element))
                {
                    parent
    = currentNode;
                   
    if (element < currentNode.ivalue) // left
                        currentNode = currentNode.lchild;
                   
    else    // right
                        currentNode = currentNode.rchild;
                }
            }                
        }
    }

  • 相关阅读:
    Android相关sdk使用
    Uniscribe文字自动换行
    Chrome RenderText分析(2)
    c++智能指针
    codepage IMLangCodePages
    GUI 快捷键的实现思路
    买车险
    九年---祝爱永存!
    算法
    Windows内核安全与驱动开发
  • 原文地址:https://www.cnblogs.com/dfsxh/p/1315980.html
Copyright © 2011-2022 走看看