创建四叉树在输入数据的时候结束不了,一直在输入数据,无法跳出嵌套循环
如下所示:
#include <iostream>
struct Node {
int data;
Node* children[4];
Node(int value) : data(value) {
for (int i = 0; i < 4; ++i) {
children[i] = nullptr;
}
}
};
Node* createQuadTree() {
int value;
std::cout << "Enter data (or -1 to stop): ";
std::cin >> value;
if (value == -1) {
return nullptr;
}
Node* newNode = new Node(value);
for (int i = 0; i < 4; ++i) {
std::cout << "Enter child " << i << " of " << value << ":\n";
newNode->children[i] = createQuadTree();
}
return newNode;
}
void printQuadTree(Node* root) {
if (root == nullptr) {
return;
}
std::cout << root->data << " ";
for (int i = 0; i < 4; ++i) {
printQuadTree(root->children[i]);
}
}
void deleteQuadTree(Node* root) {
if (root == nullptr) {
return;
}
for (int i = 0; i < 4; ++i) {
deleteQuadTree(root->children[i]);
}
delete root;
}
int main() {
Node* root = createQuadTree();
std::cout << "QuadTree:\n";
printQuadTree(root);
std::cout << std::endl;
deleteQuadTree(root);
return 0;
}