二叉排序树生成查找

《二叉排序树生成查找》
#include 
<
stdio.h
>

《二叉排序树生成查找》#include 

<
stdlib.h
>

《二叉排序树生成查找》
《二叉排序树生成查找》typedef 

struct
 snode
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    
int data;
《二叉排序树生成查找》    
struct snode *left, *right;
《二叉排序树生成查找》}

BTree;
《二叉排序树生成查找》
《二叉排序树生成查找》

void
 insert(BTree 
*&
s, 
int
 x)
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    
if(s == NULL)
《二叉排序树生成查找》《二叉排序树生成查找》    
{
《二叉排序树生成查找》        s 
= (BTree *)malloc(sizeof(BTree));
《二叉排序树生成查找》        s
->data = x;
《二叉排序树生成查找》        s
->left = NULL;
《二叉排序树生成查找》        s
->right = NULL;
《二叉排序树生成查找》    }

《二叉排序树生成查找》    
else if(s->data == x)
《二叉排序树生成查找》        
return;
《二叉排序树生成查找》    
else if(x < s->data)
《二叉排序树生成查找》        insert(s
->left, x);
《二叉排序树生成查找》    
else
《二叉排序树生成查找》        insert(s
->right, x);
《二叉排序树生成查找》}


《二叉排序树生成查找》
《二叉排序树生成查找》BTree 

*
creat()
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    BTree 
*= NULL;
《二叉排序树生成查找》    
while(1)
《二叉排序树生成查找》《二叉排序树生成查找》    
{
《二叉排序树生成查找》        
int x;
《二叉排序树生成查找》        scanf(
%d&x);
《二叉排序树生成查找》        
if(x == 0)
《二叉排序树生成查找》            
break;
《二叉排序树生成查找》        
else
《二叉排序树生成查找》            insert(t, x);
《二叉排序树生成查找》    }

《二叉排序树生成查找》    
return t;
《二叉排序树生成查找》}


《二叉排序树生成查找》
《二叉排序树生成查找》

void
 preorder(BTree 
*
p)
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    
if(p != NULL)
《二叉排序树生成查找》《二叉排序树生成查找》    
{
《二叉排序树生成查找》        printf(
%3d, p->data);
《二叉排序树生成查找》        preorder(p
->left);
《二叉排序树生成查找》        preorder(p
->right);
《二叉排序树生成查找》    }

《二叉排序树生成查找》}


《二叉排序树生成查找》
《二叉排序树生成查找》BTree 

*
search_num(BTree 
*
t, 
int
 x)
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    
if(t == NULL)
《二叉排序树生成查找》        
return NULL;
《二叉排序树生成查找》    
else
《二叉排序树生成查找》《二叉排序树生成查找》    
{
《二叉排序树生成查找》        
if(t->data == x)
《二叉排序树生成查找》            
return t;
《二叉排序树生成查找》        
else if(x < t->data)
《二叉排序树生成查找》            search_num(t
->left, x);
《二叉排序树生成查找》        
else
《二叉排序树生成查找》            search_num(t
->right, x);
《二叉排序树生成查找》    }

《二叉排序树生成查找》}


《二叉排序树生成查找》
《二叉排序树生成查找》

int
 main()
《二叉排序树生成查找》《二叉排序树生成查找》


{
《二叉排序树生成查找》    BTree 
*tree;
《二叉排序树生成查找》    printf(
请输入创建一个排序二叉树的数,以0结束 );
《二叉排序树生成查找》    tree 
= creat();
《二叉排序树生成查找》    printf(
先序遍历如下 );
《二叉排序树生成查找》    preorder(tree);
《二叉排序树生成查找》    printf(
);
《二叉排序树生成查找》    printf(
请输入要查找的数: );
《二叉排序树生成查找》    
int num;
《二叉排序树生成查找》    scanf(
%d&num);
《二叉排序树生成查找》    BTree 
*test = search_num(tree, num);
《二叉排序树生成查找》    
if(test)
《二叉排序树生成查找》        printf(
找到 );
《二叉排序树生成查找》    
else
《二叉排序树生成查找》        printf(
没找到 );
《二叉排序树生成查找》    
return 0;
《二叉排序树生成查找》}
 

    原文作者:二叉查找树
    原文地址: https://blog.csdn.net/tanlingyun/article/details/1584099
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞