我是一个新手,在编程和工作的AVL树ATM的实现。我遇到了很多问题,在其中的一个问题上请求帮助,也许在那之后我也能解决其他的问题,因为它们听起来都很相似。
我有以下功能打印目录树:
void AVL_in_order_walk(AVLTree* avlt)
{
if(avlt!=NULL){
AVL_in_order_walk(avlt->root->left);
printf("%d",avlt->root->value);
AVL_in_order_walk(avlt->root->right);
}
}
这似乎是大错特错的。我收到以下警告:
passing argument 1 of ‘AVL_in_order_walk’ from incompatible pointer type [enabled by default]
AVL_in_order_walk(avlt->root->left);
我有好几个像这样的错误/警告/注意事项。我想简单理解这个问题有一个很大的问题:当我有一个函数,比如上面发布的in_order_walk,这个函数没有得到一个节点,而是得到了整个树。我也有过几次遍历树或插入函数,但函数总是有一个节点可以开始,因为它被称为“void function(node*X)”。现在我有了整个树(avltree*avlt),我似乎不能使用递归,因为这一点,我错了吗?
null
struct AVLTree
{
struct AVLNode* root;
int numberOfNodes;
};
struct AVLNode
{
struct AVLNode* left;
struct AVLNode* right;
struct AVLNode* parent;
int value;
int height;
};
null
void AVL_in_order_walk(AVLTree* avlt);
null
void AVL_in_order_walk(avltree*avlt)
声明为接受avltree*
,但您尝试向其传递avlnode*
。编译器会告诉您这些是指向不同类型的指针。
我建议您添加一个可以递归调用的隐藏函数,并做实际工作。
static void AVL_in_order_walk_implementation(AVLNode* avlt) {
/* Implement the walk */
}
extern void AVL_in_order_walk(AVLTree* avlt) {
if(avlt)
AVL_in_order_walk_implementation(avlt->root);
}
其他标准c函数 -> Details 其他标准c函数 abort 语法: #include <stdlib.h> void abort( void );功能: 终止程序的执行。返回值依赖于执行,可以通过返回值显示错误。 相关主题: exit() and atexit(). assert 语法: #include <assert.h> void assert( int exp );功能: 宏asse
其他标准c函数 其他标准c函数 abort() 停止程序执行 assert() 当表达式非真,停止程序执行 atexit() 当程序退出执行设定的程序 bsearch() 执行折半查找 exit() 停止程序执行 getenv() 获取指定环境变量的值 longjmp() 从设定点执行程序 qsort() 执行快速排序 raise() 向程序发送信号 rand() 返回一个随机数 setjmp()
AVL树与自平衡二叉搜索树相同。AVL代表什么?这和发明者的名字有关吗?
问题内容: 我有一个选择查询,我试图在字符串中搜索多个模式 返回零结果 然而 返回结果并 返回结果 是否可以将我所有的结果合并为一个查询?如果一个字符串匹配两者,它将如何处理? 问题答案: 如果可以的话,这会很好,但是您不能在SQL中使用该语法。 试试这个: 注意使用括号!您需要在表达式周围使用它们。 如果没有括号,它将被解析为,不会为您带来预期的结果。
问题内容: 我从学习Spring开始,我创建了一个基本项目,该项目创建数据库,插入值,然后在Web浏览器中打印它。我的问题是,当我将RestController和主类放在同一个包中时- 可以,但是我想将其分发到其他包中,而当我创建新包时,移动RestController则不起作用。让我们见面解释: 我的项目看起来像: 我的控制器看起来: 当一切都在包,我写的网络浏览器的http://本地主机:80
相信维基百科文章:http://en.wikipedia.org/wiki/AVL_tree AVL树高度平衡,但一般不平衡重量,也不平衡μ;[4] 也就是说,同级节点的子节点数量可能相差很大。 但是,作为AVL树是: 自平衡二叉查找树[...]。在AVL树中,任何节点的两个子树的高度最多相差一个 我不明白AVL怎么会是重量不平衡的,因为——如果我很好地理解AVL树的定义——每个兄弟姐妹都会有大约