05 2021 档案
摘要:前言 在给这篇文章起标题时,我很纠结,我自己其实都不清楚这个问题该怎么描述。 写这篇文章的初衷呢,是因为,我发现我对函数的参数传递理解其实并不透彻,尽管我知道值传递、地址传递,但在使用return返回的参数时,也总是漏洞百出。 所以,我写下了这篇文章,希望能借此让自己的理解更进一层。 正文 问题一:
阅读全文
摘要:平衡二叉树(AVL树) 定义 或是空树或是每个结点深度之差不超过1的二叉排序树举例如下(结点的平衡因子=左子树深度-右子树深度): 旋转(将二叉排序树调整为二叉平衡树) 由于在二叉平衡树中插入或删除结点后,可能使平衡二叉树失去平衡,因此需要对其进行调整。假设结点a是失去平衡的最小子树的根结点 1.
阅读全文
摘要:二叉排序树(查找、结点增加、删除) 定义 或是空树 或具有下列性质: 若左子树不为空,则左子树上所有结点的值均小于根结点的值若右子树不为空,则右子树上所有结点的值均大于根结点的值左右子树本身也是一棵二叉排序树 举例: 优点 提高查找和插入删除关键字的速度 结点查找 算法分析 若二叉排序树为空,查找失
阅读全文
摘要:二叉树的遍历算法(递归、层次、非递归) 递归、层次遍历算法 先序遍历 若二叉树为空,遍历结束;否则,先根结点、再左子树、后右子树 /* //二叉链表结点定义 template <class T> class BiTreeNode { public: T data; //数据域 BiTreeNode<
阅读全文