#include <iostream.h> class btree { private : struct node { node *left ; char data ; node *right ; } *root ; char *arr ; int *lc ; int *rc ; public : btree ( char *a, int *l, int *r, int size ) ; void insert ( int index ) ; static node* buildtree ( char *a, int *l, int *r, int index ) ; void display( ) ; static void inorder ( node *sr ) ; ~btree( ) ; static void del ( node *sr ) ; } ; btree :: btree ( char *a, int *l, int *r, int size ) { root = NULL ; arr = new char[size] ; lc = new int[size] ; rc = new int[size] ; for ( int i = 0 ; i < size ; i++ ) { * ( arr + i ) = * ( a + i ) ; * ( lc + i ) = * ( l + i ) ; * ( rc + i ) = * ( r + i ) ; } } void btree :: insert ( int index ) { root = buildtree ( arr, lc, rc, index ) ; } node* btree :: buildtree ( char *a, int *l, int *r, int index ) { node *temp = NULL ; if ( index != -1 ) { temp = new node ; temp -> left = buildtree ( a, l, r, * ( l + index ) ) ; temp -> data = * ( a + index ) ; temp -> right = buildtree ( a, l, r, * ( r + index ) ) ; } return temp ; } void btree :: display( ) { inorder ( root ) ; } void btree :: inorder ( node *sr ) { if ( sr != NULL ) { inorder ( sr -> left ) ; cout << sr -> data << "\t" ; inorder ( sr -> right ) ; } } btree :: ~btree( ) { delete arr ; delete lc ; delete rc ; del ( root ) ; } void btree :: del ( node *sr ) { if ( sr != NULL ) { del ( sr -> left ) ; del ( sr -> right ) ; } delete sr ; } void main( ) { char a[ ] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', '\0', '\0', 'H' } ; int l[ ] = { 1, 3, 5, -1, 9, -1, -1, -1, -1, -1 } ; int r[ ] = { 2, 4, 6, -1, -1, -1, -1, -1, -1, -1 } ; int sz = sizeof ( a ) ; btree bt ( a, l, r, sz ) ; bt.insert( 0 ) ; cout << "\nIn-order Traversal: " << endl ; bt.display( ) ; } |
Description :
This is the one stop educational site for all Electronic and Computer students. If you want to learn something new then we are here to help. We work on Microcontroller projects, Basic Electronics, Digital electronics, Computer projects and also in basic c/c++ programs.
#Home #Sitemap #Resources #Terms of Use
Copyright©2012 electrofriends.com All Rights Reserved
Contact:[email protected]
Write a C++ program to create a class called BIN_TREE ( Binary tree) with member functions to perform inorder, preorder and postorder traversals. Create a BIN_TREE object and demonstrate the traversals.
Source:
http://programscpp.blogspot.in/2012/09/c-program-to-implement-binary-search-tree-cpp.html