class Node {
private:
Node *left = NULL, *right = NULL;
char data;
public:
Node(char new_data) {
data = new_data;
}
Node *get_left() {
return left;
}
Node *get_right() {
return right;
}
char get_data() {
return data;
}
void set_data(char new_data) {
data = new_data;
}
};
Ich habe es debugged (mit gdb sowie cout) und es scheint, dass die set_data-Funktion das Problem ist. Warum?Kann nicht sehen, warum dies segzufälliges ist
Es gibt viel mehr Code, aber ich nehme an, dass mehr Code nicht notwendig ist.
EDIT:
class tree {
private:
Node *root;
public:
tree(char ch) {
cout << "ASDASD"; //using this to identify error
root->set_data(ch);
cout << root->get_data(); //using this to identify error
}
};
EDIT 2:
#include <iostream>
#include "tree.h"
#include <cctype>
using namespace std;
int main() {
char c;
cout << "Enter a series of letters: ";
cin >> c;
tree t(c); //sets first one to root
while(cin) { //change??
cin >> c;
if (isdigit(c)) break;
Node *n;
n->set_data(c);
t.insert(n);
}
}
-Code soll von der Tastatur lesen, eine Zahl bis zu lesen. Es liest alle Buchstaben, aber wenn ich eine Nummer eintippe, um zu versuchen, zu beenden, segmentiert es.
Achten Sie auf 'NULL' Knoten, während Sie den Baum gehen. – xbug
Ich bin mir nicht sicher, ob ich irgendetwas mit Null-Knoten mache. Die Baumklasse verfügt über einen Konstruktor, der set_data() verwendet, um seinen Stammknoten festzulegen. Ich habe den ursprünglichen Beitrag aktualisiert, um den Hauptteil der Baumklasse einzuschließen. Ist da etwas nicht in Ordnung? – Locrian7
Wann wird 'root' auf eine Instanz eines' Node * 'gesetzt? – bmm6o