递归和非递归实现二叉排序树(BST)的查找操作
生活随笔
收集整理的這篇文章主要介紹了
递归和非递归实现二叉排序树(BST)的查找操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二叉排序樹又稱二叉查找樹
非遞歸實現BST的查找操作空間復雜度為O(1),但是遞歸實現的空間復雜度為O(h)?,h為樹的高度
#include <iostream> using namespace std; typedef struct BSTNode{int key;struct BSTNode *lchild,*rchild; }BSTNode,*BSTree;//非遞歸,空間復雜度為O(1) BSTNode *BST_Search(BSTree T,int key){while(T!=NULL&&key!=T->key){if(key<T->key)T=T->lchild;elseT=T->rchild;}return T; }//遞歸,空間復雜度為O(h) BSTNode *BSTSearch(BSTree T,int key){if(T==NULL)return NULL;if(key==T->key)return T;else if(key<T->key)return BSTSearch(T->lchild,key);elsereturn BSTSearch(T->rchild,key); }?
總結
以上是生活随笔為你收集整理的递归和非递归实现二叉排序树(BST)的查找操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树和森林转二叉树,二叉树无右孩子(或右指
- 下一篇: 图的邻接矩阵存储和邻接表存储定义方法