二元樹是一種樹狀資料結構,每個節點都有兩個子節點。這兩個子節點被稱為左子節點和右子節點。
二元搜尋樹(BST)是一種樹狀結構,其中左子樹包含小於根節點的值的節點,右子樹包含大於根節點的值的節點。
在這裡,我們將檢查一個二元樹是否是BST:
為了檢查這個,我們需要在二元樹上檢查BST條件。對於根節點,左子節點的值應該小於根節點的值,而右子節點的值應該大於根節點的值,對於樹中所有存在子節點的節點都要滿足這個條件。
#include<bits/stdc++.h> #include<iostream> using namespace std; class node { public: int data; node* left; node* right; node(int data) { this->data = data; this->left = NULL; this->right = NULL; } }; int isBSTUtil(node* node, int min, int max); int isBST(node* node) { return(isBSTUtil(node, INT_MIN, INT_MAX)); } int isBSTUtil(node* node, int min, int max) { if (node==NULL) return 1; if (node->data < min || node->data > max) return 0; return isBSTUtil(node->left, min, node->data-1) && isBSTUtil(node->right, node->data+1, max); } int main() { node *root = new node(8); root->left = new node(3); root->right = new node(10); root->left->left = new node(1); root->left->right = new node(6); if(isBST(root)) cout<<"The given tree is a BST"; else cout<<"The given tree is Not a BST"; return 0; }
The given tree is a BST
程式碼解釋
上述程式碼檢查一個二元搜尋樹。主方法建立一棵樹並呼叫isBST()方法。此方法檢查左右子節點是否遵循二元搜尋樹規則,並且使用isBSTuntil()方法來檢查形成的子樹是否也是二元搜尋樹。
方法。以上是一個用C語言編寫的程序,用於檢查二元樹是否為二元搜尋樹(BST)的詳細內容。更多資訊請關注PHP中文網其他相關文章!