структуры данных — PHP реализует двоичное дерево BST

Я пытаюсь выучить PHP по-другому, чтобы улучшить свои навыки. Вот проблема. Есть ли способ узнать, является ли данный дерево BST(бинарное дерево поиска) или нет в PHP.Я пробовал с языком C .Кто-нибудь может мне помочь с PHP?
Вот мой код на языке Си.

    #include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node* left;
struct node* right;
};

static struct node *prev = NULL;

/*Function to check whether the tree is BST or not*/
int is_bst(struct node* root)
{
if (root)
{
if (!is_bst(root->left)) //moves towards the leftmost child of the tree and checks for the BST
return 0;
if (prev != NULL && root->data <= prev->data)
return 0;
prev = root;
return is_bst(root->right);    //moves the corresponding right child of the tree and checks for the BST
}
return 1;
}

struct node* newNode(int data)
{
struct node* node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;

return(node);
}

int main()
{
struct node *root = newNode(40);
root->left        = newNode(20);
root->right       = newNode(60);
root->left->left  = newNode(10);
root->left->right = newNode(30);
root->right->right = newNode(80);
root->right->right->right = newNode(90);
if (is_bst(root))
printf("TREE 1 Is BST");
else
printf("TREE 1 Not a BST");
prev = NULL;
return 0;
}

0

Решение

По сути, вы можете запустить тот же алгоритм, если ваше определение класса и экземпляр объявлены / присутствуют в PHP.

Как выглядит ваш PHP-код в настоящее время?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]