Thanks for your help thus far, definately getting somewhere..

Code:

114 /*Check if the variable root is a BST*/
115 int is_BST(tnode_t *node){
116 if (node == NULL){
117 return 1;
118 }
119 else if( node->left!=NULL && node->right !=NULL){
120 if ((node->data > node->left->data) &&
121 (node->data < node->right->data) &&
122 (is_BST(node->left)) &&
123 (is_BST(node->right))
124 ){
125 return 1;
126 }
127 else{
128 return 0;
129 }
130 }
131
132 else if ( node->left!=NULL && node->right == NULL){
133 if((node->data>node->left->data) &&
134 (is_BST(node->left))){
135 return 1;
136 }
137 else{
138 return 0;
139 }
140 }
141
142 else if ( node->left==NULL && node->right != NULL){
143 if((node->data<node->right->data) &&
144 (is_BST(node->right))){
145 return 1;
146 }
147 else{
148 return 0;
149 }
150 }
151 else return 0;
152 }

Ok so i've split it up a bit..it compiles and runs, only problem is, its returning 0 for sometihng i know is a BST..