struct tree{
struct node* root;
};
typedef struct tree* Tree;
struct node{
int key;
struct node* left;
struct node* right;
};
typedef struct node* node;
Mein Problem ist, dass die Funktion, die ich implementieren muss, als ein Parameter ein Baum und kein Knoten erfordert.Anzahl der Vorkommen in Binärbaum in C
int count_occurrences(Tree t, int k){}
Ich weiß, wie diese Funktion zu implementieren, wenn die ersten Parameter des Typ Knoten sind, aber da es eine Art Baum benötigt, kann ich es nicht herausfinden, wie die Art Baum-Parameter in den rekursiven Aufrufen zu übergeben.
EDIT: Auch gibt es ein anderes Problem. Ich kann nicht direkt auf Strukturfelder zugreifen, da sie in einer anderen Datei (Schulprojekt) deklariert sind. Ich habe Zugriff auf einige Funktionen wie die Wurzel eines Baumes immer, links oder rechts Kind eines Knotens etc
Tree newtree();
int treeempty(Tree t);
Node root(Tree t);
int readInfo(Node v);
void setInfo(Node v, int x);
Node leftChild(Node v);
Node rightChild(Node v);
Sie können ein Frontend haben Funktion, die einen Baum und eine rekursive Funktion benötigt, die einen Knoten übernimmt. Rufen Sie die rekursive Funktion mit dem Wurzelknoten vom Frontend auf. –
Warum brauchen Sie rekursive Aufrufe? Einfach den Baum von der Wurzel bis zum Ende durchfahren (was wahrscheinlich durch "rechts" als NULL angezeigt wird). Auch das Verbergen der Tatsache, dass etwas ein Zeigertyp mit einem Typedef ist, kann verwirrend sein. – Unimportant