Как исправить эти синтаксические ошибки ?
Меня попросили написать программу, которая должна делать следующее;
- постройте двоичное дерево поиска, используя массивы и указатели. Значения, хранящиеся в узлах, являются действительными числами.
- Траверс бинарное дерево в обычном 3-мя способами: симметричного, до того и после заказать.
Поэтому, прежде чем непосредственно писать всю программу, я хотел, по крайней мере, написать одну, используя только указатели. Затем, если это сработает, я бы добавил строки requierd, чтобы код мог построить BST либо с помощью указателей, либо с помощью массива в зависимости от выбора пользователя.
Ниже находится код, который я пробовал, и проблема заключается в том, что я не знаю, как исправить синтаксические ошибки в функциях в операторах case.
Что я уже пробовал:
#include <iostream> using namespace std; struct node { float info; node * left; node * right; }; typedef node *tree; // to store the address of the root node. void build(node *t, float x){ if (t == NULL){ t = new node; t -> info = x; t -> left = NULL; t -> right = NULL; } else{ if (t -> info >= x) build (t -> left, x); else build(t-> right, x); } } void inorder(tree t){ if (t -> left != NULL) inorder (t -> left); cout << t -> info <<" "; if (t -> right != NULL) inorder (t -> right); } void preorder(tree t){ if (t != NULL){ cout << t -> info <<" "; preorder(t -> left); preorder(t -> right); } } void postorder(tree t){ if (t -> left != NULL) postorder(t -> left); if (t -> right != NULL) postorder(t -> right); cout << t -> info <<" "; } int main() { b: cout << "Choose among the following actions" << endl; cout << "1. Build a binary search tree"<< endl; cout << "2. Traverse the tree in order"<< endl; cout << "3. Traverse the tree in pre order"<< endl; cout << "4. Traverse the tree in post order"<< endl; cout << "5. Quit"<< endl; float s; int choice; cin >> choice; switch(choice){ case 1: build(node*,s); break; case 2: inorder(node*); break; case 3: preorder(node*); break; case 4: postorder(node*); break; case 5: goto a; break; default : goto b; break; } a: return 0; }