C語言——二叉排序樹
阿新 • • 發佈:2017-09-02
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語言——二叉排序樹