Note that there are some explanatory texts on larger screens.

plurals
  1. POWeird error in binary search tree
    primarykey
    data
    text
    <pre><code>#include &lt;iostream&gt; using namespace std; #define YES 1 #define NO 0 class tree { private: public: struct leaf { int data; leaf *l; leaf *r; }; struct leaf *p; tree(); ~tree(); void destruct(leaf *q); tree(tree&amp; a); void add(int n); void transverse(); void in(leaf *q); void pre(leaf *q); void post(leaf *q); leaf* createBST(int *preOrder, int* inOrder, int len); }; tree::tree() { p=NULL; } tree::~tree() { destruct(p); } void tree::destruct(leaf *q) { } void tree::transverse() { int c; cout&lt;&lt;"\n1.InOrder\n2.Preorder\n3.Postorder\nChoice: "; cin&gt;&gt;c; switch(c) { case 1: in(p); break; case 2: pre(p); break; case 3: post(p); break; } } void tree::in(leaf *q) { if(q!=NULL) { in(q-&gt;l); cout&lt;&lt;"\t"&lt;&lt;q-&gt;data&lt;&lt;endl; in(q-&gt;r); } } void tree::pre(leaf *q) { if(q!=NULL) { cout&lt;&lt;"\t"&lt;&lt;q-&gt;data&lt;&lt;endl; pre(q-&gt;l); pre(q-&gt;r); } } void tree::post(leaf *q) { if(q!=NULL) { post(q-&gt;l); post(q-&gt;r); cout&lt;&lt;"\t"&lt;&lt;q-&gt;data&lt;&lt;endl; } } tree::leaf* tree::createBST(int *preOrder, int* inOrder, int len) { int i; tree::leaf *bst = new tree::leaf; // tree bst; // if(len &lt; 0) // {//bst = NULL; // return bst;} bst-&gt;data = *preOrder; for(i = 0; i &lt; len; i++) if(*(inOrder + i) == *preOrder) break; if(i&gt;=0) bst-&gt;l = createBST(preOrder + 1, inOrder, i); if((len-i-1) &gt;=0) bst-&gt;r = createBST(preOrder + i +1, inOrder + i + 1, len-i-1); return bst; } int main() { tree bst; int pre_data[] = {20,8,4,12,10,14,22}; int in_data[] = {4,8,10,12,14,20,22}; bst.p = bst.createBST(pre_data, in_data, 7); bst.transverse(); return 0; } </code></pre> <p>The main problem is in function </p> <pre><code> tree::leaf* tree::createBST(int *preOrder, int* inOrder, int len) </code></pre> <p>Note: I've posted two questions about this. Because I modified my code a lot I started a fresh post. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload