1. 程式人生 > >C語言——二叉排序樹

C語言——二叉排序樹

pre span ren 二叉 == nbsp stdio.h spa int

二叉排序樹是一種實現動態查找的樹表,又稱二叉查找樹

二叉排序樹的性質:

1. 若它的左子樹不為空,則左子樹上所有節點的鍵值均小於它的根節點鍵值

2. 若它的右子樹不為空,則右子樹上所有節點的鍵值均大於它的根節點鍵值

3. 根的左右子樹也分別為二叉排序樹

#include <stdio.h>
#include "BinTree.h"

// 二叉排序樹的查找算法

/*
// 二叉鏈表的類型定義
typedef struct btnode
{
    int key;
    struct btnode *lchild, *rchild; // 指向左右孩子的指針
}*BinTree;

// 三叉鏈表的類型定義
typedef struct ttnode
{
    int data;
    struct ttnode *lchild, *parent, *rchild;
}*TBinTree;
*/ /* 在根指針所指的二叉排序樹上遞歸地查找鍵值等於key的節點。 若成功,則返回指向該節點的指針,否則返回空指針。 */ BinTree SearchBST(BinTree bst, int key) { if(bst == NULL) return NULL; else if(key == bst->key) return bst; else if(key < bst->key) return SearchBST(bst->lchild, key); else return SearchBST(bst->rchild, key); }

C語言——二叉排序樹