URI Online Judge Solution 1200 BST Operations I Tree Recovery - Solution in C, C++, Java, Python and C#
URI Online Judge Solution 1200 BST Operations I | BeginnerURI Problem Link - https://www.urionlinejudge.com.br/judge/en/problems/view/1200
Problem Name: 1200 BST Operations I code
Problem Number : URI - 1200 BST Operations I solution
Online Judge : URI Online Judge Solution
Category: Beginner
Solution Language : C,C plus plus, java, python, c#(c sharp)
URI Solution 1200 BST Operations I Simple Input output
Sample Input | Sample Output |
I c I f I a I h INFIXA PREFIXA POSFIXA P z P h I g INFIXA | a c f h c a f h a h f c z nao existe h existe a c f g h |
URI Solution 1200 BST Operations I Code in C++ / URI 1200 in cpp:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool b;
struct Node
{
char data;
Node* left;
Node* right;
};
Node* GetNewroot(int data)
{
Node* newroot = new Node();
newroot -> data = data;
newroot -> left = NULL;
newroot -> right = NULL;
return newroot;
}
Node* Insert(Node* root, int data)
{
if(root == NULL){
root = GetNewroot(data);
return root;
}else if(data <= root -> data){
root -> left = Insert(root -> left, data);
}else{
root -> right = Insert(root -> right, data);
}
return root;
}
bool lookup(struct Node* root, int target)
{
if (root == NULL){
return false;
}else {
if (target == root->data){
return true;
}else{
if (target < root->data) return lookup(root->left, target);
else return lookup(root->right, target);
}
}
}
void printPreOrder(struct Node* root)
{
if (root == NULL)
return;
if(b){
printf("%c", root -> data);
b = false;
}else{
printf(" %c", root -> data);
}
printPreOrder (root -> left);
printPreOrder (root -> right);
}
void printInOrder(struct Node* root)
{
if (root == NULL)
return;
printInOrder (root -> left);
if(b){
printf("%c", root -> data);
b = false;
}else{
printf(" %c", root -> data);
}
printInOrder (root -> right);
}
void printPosOrder(struct Node* root)
{
if (root == NULL)
return;
printPosOrder (root -> left);
printPosOrder (root -> right);
if(b){
printf("%c", root -> data);
b = false;
}else{
printf(" %c", root -> data);
}
}
int main(int argc, char const *argv[])
{
string s;
Node* root = NULL;
while(getline(cin, s))
{
if(s == "INFIXA"){
b = true;
printInOrder(root);
printf("\n");
}else if(s == "PREFIXA"){
b = true;
printPreOrder(root);
printf("\n");
}else if(s == "POSFIXA"){
b = true;
printPosOrder(root);
printf("\n");
}else if(s[0] == 'P' && s[1] == ' '){
if(lookup(root, s[2])) printf("%c existe\n", s[2]);
else printf("%c nao existe\n", s[2]);
}else{
root = Insert(root, s[2]);
}
}
return 0;
}
URI Solution 1200 BST Operations I Code / URI 1200 solution in CPP:
URI Solution 1200 BST Operations I Code / URI 1200 solution in Java:
URI Solution 1200 BST Operations I Code / URI 1200 solution in Python:
URI Solution 1200 BST Operations I Code / URI 1200 solution in C# (C Sharp):
Demonstration:
Just implement this in coding. Since having any problem just put a comment below. Thanks
Tags: URI Online Judge Solution, URI OJ Solution list, URI Problems Solution, URI solver, URI all problem solution list, URI 1200 BST Operations I code in C, URI 1200 BST Operations I code in C++, URI 1200 BST Operations I solution in C, URI solution, URI 1200 BST Operations I solution in C,URI 1002 solution in C++-CPP,URI 1200 BST Operations I solution in C# (C sharp),URI 1200 BST Operations I solution in Java,URI 1200 BST Operations I solution in Python,
No comments:
Post a Comment