日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

二叉查找樹

 昵稱1740930 2012-03-30
#include<iostream.h>
typedef struct BiNode
{
 int data;                      //結(jié)點的值,假設(shè)查找集合的元素為整型
 BiNode *lchild, *rchild;         //指向左、右子樹的指針
}BiNode;
BiNode * SearchBST(BiNode *root, int k);
BiNode *insertBST(BiNode *tree,int data);
BiNode *createBST(int a[],int n);
int main()
{
 BiNode *root,*t;
 int a[]={55,42,10,70,63,58,83,67,90,45};
 root=createBST(a,10);
    t=SearchBST(root,10);
 if(t)
  cout<<"查找成功";
 else
  cout<<"查找失敗";
 return 0;
}
BiNode *insertBST(BiNode *tree,int data)      //二叉排序樹的插入
{
 if(tree==NULL)
 {
  tree=new BiNode;
  tree->data=data;
  tree->lchild=NULL;
  tree->rchild=NULL;
  return tree;
 }
 if(data<=tree->data)
  tree->lchild=insertBST(tree->lchild,data);
 else
  tree->rchild=insertBST(tree->rchild,data);
 return tree;
}
BiNode *createBST(int a[],int n)       //二叉排序樹的創(chuàng)建
{
 BiNode *t=NULL;
 int i=0;
 while(a[i]!=-1)
 {
  t=insertBST(t,a[i]);
  i++;
 }
 return t;
}
BiNode * SearchBST(BiNode *root, int k)
{
    if (root == NULL) return NULL;            //二叉查找樹為空,查找失敗
 else if (root->data == k) return root;           //查找成功
 else if (k < root->data)                   //查找左子樹
  return SearchBST(root->lchild, k);
    else                               //查找右子樹
  return SearchBST(root->rchild, k);
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多