文章分类 - 数据结构-树
摘要:递归算法非常的简单。先访问跟节点,然后访问左节点,再访问右节点。如果不用递归,那该怎么做呢?仔细看一下递归程序,就会发现,其实每次都是走树的左分支(left),直到左子树为空,然后开始从递归的最深处返回,然后开始恢复递归现场,访问右子树。其实过程很简单:一直往左走 root->left->left->left...->null,由于是先序遍历,因此一遇到节点,便需要立即访问;由于一直走到最左边后,需要逐步返回到父节点访问右节点,因此必须有一个措施能够对节点序列回溯。有两个办法:1.用栈记忆:在访问途中将依次遇到的节点保存下来。由于节点出现次序与恢复次序是反序的,因此是一
阅读全文
摘要:遍历序列1.遍历二叉树的执行踪迹 三种递归遍历算法的搜索路线相同(如下图虚线所示)。具体线路为: 从根结点出发,逆时针沿着二叉树外缘移动,对每个结点均途径三次,最后回到根结点。 2.遍历序列(1) 中序序列 中序遍历二叉树时,对结点的访问次序为中序序列 【例】中序遍历上图所示的二叉树时,得到的中序序列为: D B A E C F(2) 先序序列 先序遍历二叉树时,对结点的访问次序为先序序列 【例】先序遍历上图所示的二叉树时,得到的先序序列为: A B D C E F(3) 后序序列 后序遍历二叉树时,对结点的访问次序为后序序列 【例】后序遍历上图所示的二叉树时,得到的后序序列为: D B...
阅读全文
摘要:链式存储结构1.结点的结构 二叉树的每个结点最多有两个孩子。用链接方式存储二叉树时,每个结点除了存储结点本身的数据外,还应设置两个指针域lchild和rchild,分别指向该结点的左孩子和右孩子。结点的结构为: 2.结点的类型说明 typedef char DataType; //用户可根据具体应用定义DataType的实际类型 typedef struct node{ DataType data; Struct node *lchild,*rchild; //左右孩子指针 }BinTNode; //结点类型 typedef BinTNode *BinTree;//BinTree为指向Bin.
阅读全文

浙公网安备 33010602011771号