Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <cassert>
  3.  
  4. using namespace std;
  5. class BSTNode {
  6. char data ;
  7. BSTNode *rNode ;
  8. BSTNode *lNode ;
  9. public :
  10. BSTNode( char c ) { rNode = 0 ;
  11. lNode = 0 ;
  12. data = c ; }
  13.  
  14. char getData() { return data ; }
  15. void setRNode(BSTNode*& b ) { rNode = b ; }
  16. BSTNode getRNode () { return RNode ; }
  17. void setLNode (BSTNode*& g ) { lNode = g ; }
  18. BSTNode getLNode (){ return lNode ; }
  19.  
  20. } ;
  21. class BST {
  22. BSTNode *root ;
  23. public :
  24. BST(){ root = NULL ; }
  25. BSTNode getRoot() { return root ; }
  26. bool isEmpty() {(root == NULL) ; }
  27. void insert( char& d) {
  28. {
  29. nodeType *current;
  30. nodeType *trailCurrent;
  31. nodeType *newNode;
  32.  
  33. newNode = new BSTNode() ;
  34. assert(newNode != NULL);
  35. newNode->setdata( d ) ;
  36. newNode->setRNode ( NULL ) ;
  37. newNode->setlNode ( NULL )
  38.  
  39. if(root == NULL)
  40. root = newNode;
  41. else
  42. {
  43. current = root;
  44.  
  45. while(current != NULL)
  46. {
  47. trailCurrent = current;
  48.  
  49. if(current->getdata() == item)
  50. {
  51. cout<<"The insert item is already in the list ";
  52. cout<<"duplicates are not allowed."<<endl;
  53. return;
  54. }
  55. else
  56. if(current->getdata() > item)
  57. current = current->getlNode;
  58. else
  59. current = current->getRNode;
  60. }
  61.  
  62. if(trailCurrent->getdata() > item)
  63. trailCurrent->setlNode( newNode ) ;
  64. else
  65. trailCurrent->setRNode ( newNode ) ;
  66. }
  67. } }
  68. bool contains() ; } ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement