In: Computer Science
Make an Array implementation of a binary tree given the below
class ArrayBinaryTree(BinaryTree): """Linked representation of a binary tree structure.""" # -------------------------- nested _Node class -------------------------- class _Node: def __init__(self, element, parent=None, left=None, right=None): # -------------------------- nested Position class -------------------------- class Position(BinaryTree.Position): """An abstraction representing the location of a single element.""" def __init__(self, container, node): def element(self): def __eq__(self, other): # ------------------------------- utility methods ------------------------------- def _validate(self, p): """Return associated node, if position is valid.""" def _make_position(self, node): """Return Position instance for given node (or None if no node).""" # -------------------------- binary tree constructor -------------------------- def __init__(self): """Create an initially empty binary tree.""" # -------------------------- public accessors -------------------------- def __len__(self): """Return the total number of elements in the tree.""" def root(self): """Return the root Position of the tree (or None if tree is empty).""" def parent(self, p): """Return the Position of p's parent (or None if p is root).""" def left(self, p): """Return the Position of p's left child (or None if no left child).""" def right(self, p): """Return the Position of p's right child (or None if no right child).""" def num_children(self, p): """Return the number of children of Position p.""" # -------------------------- nonpublic mutators -------------------------- def _add_root(self, e): """Place element e at the root of an empty tree and return new Position.""" def _add_left(self, p, e): """Create anew left child for Position p, storing element e.""" def _add_right(self, p, e): """Create a new right child for Position p, storing element e. Return the Position of new node. Raise ValueError if Position p is invalid or p already has a right child. """ def _replace(self, p, e): """Replace the element at position p with e, and return old element.""" def _delete(self, p): """Delete the node at Position p, and replace it with its child, if any. Return the element that had been stored at Position p.Raise ValueError if Position p is invalid or p has two children. """ def _attach(self, p, t1, t2): """Attach trees t1 and t2, respectively, as the left and right subtrees of the external Position p. As a side effect, set t1 and t2 to empty. Raise TypeError if trees t1 and t2 do not match type of this tree. Raise ValueError if Position p is invalid or not external. """
#include<iostream.h>
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int binarysearch(int arr[],int k,int r,int x)
{
while(k<=r)
{
int m=k+(r-k)/2;
if(arr[m]==x)
{
return m;
}
if(arr[m]<x)
{
k=m+1;
}
else
{
r=m-1;
}
}
return -1;
}
int main(void)
{
clrscr();
int arr[20],n,x,i;
cout<<"enter the number of elements in the array: ";
cin>>n;
cout<<"enter the elements one by one:\n" ;
for(i=0;i<n;i++)
{
cin>>arr[i];
}
cout<<"enter the value you want to check : ";
cin>>x;
int result=binarysearch(arr,0,n-1,x);
if(result==-1)
{
cout<<"element is not present in the array";
}
else
{
result++;
cout<<"Element is present at "<<result<<" position";
}
getch();
return 0;
}
#include<conio.h>
#include<stdio.h>
int binarysearch(int arr[],int k,int r,int x)
{
while(k<=r)
{
int m=k+(r-k)/2;
if(arr[m]==x)
{
return m;
}
if(arr[m]<x)
{
k=m+1;
}
else
{
r=m-1;
}
}
return -1;
}
int main(void)
{
clrscr();
int arr[20],n,x,i;
cout<<"enter the number of elements in the array: ";
cin>>n;
cout<<"enter the elements one by one:\n" ;
for(i=0;i<n;i++)
{
cin>>arr[i];
}
cout<<"enter the value you want to check : ";
cin>>x;
int result=binarysearch(arr,0,n-1,x);
if(result==-1)
{
cout<<"element is not present in the array";
}
else
{
result++;
cout<<"Element is present at "<<result<<" position";
}
getch();
return 0;
}