Dies ist mein erstes Mal mit jeder Art von Baum arbeiten. Ich habe eine tnode-Klasse für meinen Baum erstellt und jetzt versuche ich, die Klasse für den Baum selbst zu erstellen. Allerdings habe ich ein paar Fehler bekommen, die ich nicht herausfinden kann.Fehler für n-ary Baum C++
#ifndef Tree_Ntree_h
#define Tree_Ntree_h
// SIZE reprsents the max number of children a node can have
#define SIZE 10
// SEPERATE will allow the program to distinguish when a subtree no longer has children
#define SEPERATOR '@'
#include <iostream>
#include <fstream>
template <typename T>
class tnode{
public:
T value;
tnode *child[SIZE];
tnode() {};
tnode<T> *addChild(T data){
tnode*temp = new tnode;
temp -> value = data;
for (int i=0; i<SIZE; i++)
temp -> child[i] = NULL;
return temp;
}
};
template <typename T>
class Ntree{
private:
tnode<T> *root;
T data;
std::string filename;
public:
Ntree(){ root= NULL;}
Ntree(T data){ *root = data;}
inline T getRoot(){return root;}
Meine Fehler sind in den letzten drei Zeilen. In der letzten Zeile der meinen Code (getRoot), das ist der Fehler:
No viable conversion from 'tnode > *' to 'std::__1::basic_string'
In der zweiten bis letzten Zeile und die dritte bis letzte Zeile (* root = data) (root = NULL) ist dies die Fehler:
Ich verstehe nicht, warum es notwendig ist, den = Operator in dieser Situation zu überlasten.
Warum nicht die Größe als Template-Argument anstelle eines Makros verwenden? –
Und Ihr Beispiel enthält viele Syntaxfehler, wie die Klasse ntree nicht endet. Bitte korrigieren Sie den Code, damit wir uns auf die Fehler konzentrieren können, die Sie nicht verstehen. –