我正在制作一个AVL树程序,我的左右变量都有错误
I am making an AVL tree program and I am getting errors with my left and right variables
我从以前的一个程序中提取了这段代码,当时我使用AVL Trees而不使用结构。我认为问题是在使用getLeft((和getRight((时如何使用结构。
#ifndef BINARYTREE_H
#define BINARYTREE_H
#include <iostream>
using namespace std;
class BinaryTree
{
private:
struct TreeNode
{
string name;
int krabbyPatty;
TreeNode* left;
TreeNode* right;
};
TreeNode* root;
// Private member functions
void insert(TreeNode *&, TreeNode *&);
void destroySubTree(TreeNode *);
//void deleteNode(string n, TreeNode *&);
//void makeDeletion(TreeNode *&);
void displayInOrder(TreeNode *) const;
void display(TreeNode *ptr, int level);
void getTotal(TreeNode *nodePtr, int &total);
void getMost(TreeNode *nodePtr, string& n, int& mostPatties);
void getLeast(TreeNode *nodePtr, string& n, int& leastPatties);
我在这里得到了错误,说表达式必须是一个可修改的左值和右值。
public:
// Constructor
BinaryTree()
{
root = NULL;
left = NULL;
right = NULL;
}
// Destructor
~BinaryTree()
{
destroySubTree(root);
}
// Binary tree operations
void insertNode(string, int);
int searchNode(string);
//void remove(string);
void displayInOrder() const
{
displayInOrder(root);
}
void getLeastNumPatties(string&, int&);
void getMostNumPatties(string&, int&);
int getTotalNumPatties();
void displayTree();
其他错误就在这里,我认为我处理的结构是错误的。
TreeNode* getLeft()
{
return left;
}
TreeNode* getRight()
{
return right;
}
void setLeft(TreeNode* nodePtr)
{
left = nodePtr;
}
void setRight(TreeNode* nodePtr)
{
right = nodePtr;
}
};
#endif
欢迎来到新级别的
**程序复杂性增加一**
现在,您必须将代码拆分为TreeNode和BinaryTree这两个单独的关注点,那么用户调用setLeft有意义吗?BinaryTree应该这样做吗?谁应该真正调用Tree或Node?您提供的代码应该是TreeNode的成员,因为它没有父节点和新节点这两个指针。
void TreeNode::setLeft(TreeNode* nodePtr) {
left = nodePtr;
}
所以现在这应该工作
auto rl_rotation(TreeNode *parent) {
TreeNode *temp;
temp = parent->getRight();
parent->setRight(r_rotation(temp));
return l_rotation(parent);
}
相关文章:
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 为什么我的 IExtractIcon 处理程序没有被调用?
- 为什么我的程序在for循环中k=0时返回垃圾值
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 我的程序没有从文件中读取并输入数据
- 我的评分程序无法正常工作
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 反向功能超出了我的 cpp 程序的范围
- 我的二进制搜索程序只是关闭了
- 为什么我的程序不能显示斐波那契级数?
- 为什么我的程序在使用预留后没有加速?
- 为什么如果我添加这一行,我的程序会不断询问值
- 为什么当我输入较大的数字时,我的程序会到达文件末尾?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 为什么我的程序在 O0 和 O2 的优化级别返回不同的结果
- C++机器人程序(我的私人服务器)出现问题
- 用C++创建一个写作应用程序(我的第一个项目)(学习C++)