数据结构与算法
文章平均质量分 59
林毅夫
这个作者很懒,什么都没留下…
展开
-
恢复二叉树
以下的所有操作均基于该二叉树,关于二叉树的其他基本操作,参考该文章本文研究的对象是已知二叉树的前中序序列 还原二叉树 和 已知中后序序列 还原二叉树 已知树的结构为递归型,可用递归方式创建树 可用递归方式遍历树 同样也可用递归方式还原树在还原二叉树之前需要熟悉二叉树的三种遍历 为下文的还原操作提供理论支持讨论前序遍历特点: 先根后左结点 再右结点 前序序列总是先输出第一个访问的结点中序遍历特点:先访问左孩子 遇到左结点 遇到左结点为空再访问根结点 再访问右结点后序遍历特点: 先.原创 2021-05-19 16:17:34 · 1620 阅读 · 0 评论 -
二叉树的遍历
建立如下图所示的二叉树,以下所有的遍历操作均基于该二叉树先来用递归的方式遍历二叉树因二叉树的存储与建立均可用递归方式,且二叉树与递归息息相关,故用递归方式遍历二叉树简单明了,二叉树的遍历方式如下:先序 根左右中序 左根有后序 左右根先序遍历(递归):void preOrder(LPTREE root) { if (root) { //printCurrentNode()访问根 再依次递归调用本身访问左孩子和右孩子 printCurrentNode(root);原创 2021-04-02 23:15:29 · 304 阅读 · 0 评论 -
用队列实现杨辉三角
打印杨辉三角是一个经典问题,也是小白非常头疼的一个问题,其实掌握好诀窍也并不难,如下图,第一二行不用做什么处理,到了第三行及以后才需要处理,最简单的实现方式就是先找到规律,即首尾元素为1,中间元素是该位置上一行同列的元素及其前一个元素和(第三行开始,不包括首尾元素),用二维数组实现是最简便便捷的方法此处不仅给出了杨辉三角的普通实现方式,也给出了杨辉三角的队列实现(PS:队列是一种数据结构,第二张实现方式需要有数据结构基础才能理解)#include<stdio.h>#define MAX 1原创 2021-03-03 20:12:25 · 5676 阅读 · 3 评论