loading...
مرجع مهندسی نرم افزار
آخرین ارسال های انجمن
حامد شیرزاد بازدید : 2675 شنبه 28 آبان 1390 نظرات (0)
Binary Search Tree
 
#include<iostream.h>
#include<conio.h>
#include<alloc.h>
 
struct tree
 {
  int data;
  tree *left;
  tree *right;
 }*sptr,*q;
  void rightcheck();
  void leftcheck();
  void search();
 
  int insdata;
  tree *node;
  void main()
   {
    clrscr();
    node=new tree;
    cout<<"   PLEASE  PUT  THE root->>";
    cin>>node->data;
    sptr=node;
    q=sptr;
    node->left=NULL;
    node->right=NULL;
    cout<<"   GIVE THE child->>";
    cin>>insdata;
    search();
    while(insdata!=0)
    {
     if(insdata>sptr->data)
        rightcheck();
     else
        leftcheck();
        cout<<"   GIVE  THE  child->>";
        cin>>insdata;
        search();
        sptr=node;
       }
      getch();
      }
     void rightcheck()
       {
     if(sptr->right==NULL)
       {
        cout<<"    "<<insdata<<" IS THE  RIGHT  child of "<<q->data<<endl;
        sptr->right=new tree;
        sptr=sptr->right;
        sptr->data=insdata;
        sptr->left=NULL;
        sptr->right=NULL;
        q=node;
       }
     else
        {
         if(insdata>sptr->data)
          {
           sptr=sptr->right;
           q=sptr;
           if(insdata>sptr->data)
        rightcheck();
        else
        leftcheck();
         }
         else
          {
        sptr=sptr->left;
        q=sptr;
        leftcheck();
          }
         }
    }
         void leftcheck()
    {
         if(sptr->left==NULL)
          {
           cout<<"   "<<insdata<<" IS THE LEFT child of "<<q->data<<endl;
           sptr->left=new tree;
           sptr=sptr->left;
           sptr->data=insdata;
           sptr->right=NULL;
           sptr->left=NULL;
           q=node;
          }
     else{
         if(insdata<sptr->data)
          {
        sptr=sptr->left;
        q=sptr;
        if(insdata>sptr->data)
        rightcheck();
        else
        leftcheck();
          }
         else
          {
        sptr=sptr->right;
        q=sptr;
        rightcheck();}
          }
    }
 
       void search()
    {
       sptr=node;
       while(sptr!=NULL)
    {
      if(insdata==sptr->data)
        {
        cout<<"This is not insertable.";
        cout<<"nInsert child ";
        cin>>insdata;
        search();
        break;
        }
      else
      {
        if(insdata>sptr->data)
        sptr=sptr->right;
        else
        sptr=sptr->left;
     }
       }
     sptr=node;
 
       }
مطالب مرتبط
ارسال نظر برای این مطلب

کد امنیتی رفرش
درباره ما
به نام آنکه جان را فکرت آموخت در این وبلاگ سعی می شود به صورت تخصصی به مباحث مربوط به مهندسی نرم افزار به خصوص برنامه نویسی کامپیوتری پرداخته شود. مدیر وبلاگ : حامد شیرزاد
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 431
  • کل نظرات : 9
  • افراد آنلاین : 3
  • تعداد اعضا : 109
  • آی پی امروز : 19
  • آی پی دیروز : 46
  • بازدید امروز : 90
  • باردید دیروز : 99
  • گوگل امروز : 0
  • گوگل دیروز : 1
  • بازدید هفته : 1,504
  • بازدید ماه : 5,428
  • بازدید سال : 33,448
  • بازدید کلی : 698,623
  • کدهای اختصاصی

    قالب وبلاگ