树
小陈大人
没有对象那就new一个
展开
-
二叉树的创建及前中后序遍历和层次遍历
树是N个结点的有限集合,N=0时称为空树,任意一颗非空树满足以下条件: 有且只有一个特定的称为根的结点 当N>1时,其他结点可分为m个互不相交的悠闲集合,其中每个集合本身又是一个棵树,并称为根节点的子树 树的定义是递归的,是一种递归的数据结构,树作为一种逻辑结构,同时也是一种分层结构,具有以下两特点: 树的根节点没有前驱结点,除根之外的所有结点有且只有一个前驱结点 树中所有结点可有零个...原创 2018-04-08 09:43:17 · 647 阅读 · 0 评论 -
二叉树的前中后序遍历非递归实现及层次遍历队列实现
我的上篇博客给出了二叉树的创建和前中后序遍历算法,但它们都是基于递归实现的,虽然代码简洁,但理解起来有点费劲,想当初第一次看到这么简洁的遍历算法后,心里连连跳出三个卧槽,实在是简洁的不像话,这里先给出我自己对递归的理解. 递归像剥洋葱,假设我们剥了一层皮后还要洗干净这层皮,这一步才算完成,那么我们在剥完一次皮后,本来按步骤要去洗的,但剥完发现还有一层皮要剥,于是我们就先不洗了,而是立马把新出现的...原创 2018-04-08 11:34:16 · 3586 阅读 · 6 评论 -
根据前序序列+中序序列或根据中序序列+后序序列还原二叉树
已知先序序列存在pre[l1...r1]中 ,中序序列存在in[l2...r2]中,二叉树的结点数据域不等,构造二叉树并求其后序遍历序列 已知中序序列存在in[l2...r2]中,后序序列存在post[l1...r1],二叉树的结点数据域不等,构造二叉树并求其前序遍历序列 代码如下 #include <iostream> #include <stdlib.h> t...原创 2018-04-08 16:17:07 · 1025 阅读 · 0 评论 -
求二叉树的最大宽度
求二叉树中结点最多的那层的结点数 代码如下 #include <iostream> #include <stdlib.h> #define maxSize 100 typedef struct BTNode{//二叉树结点 char data; struct BTNode* lchild; struct BTNode* rchild; ...原创 2018-04-08 21:13:50 · 923 阅读 · 0 评论 -
二叉排序树的创建,查找和插入
二叉排序树的查找,插入和创建代码 #include <iostream> #include<stdlib.h> typedef struct BTNode{ int data; BTNode *lchild; BTNode *rchild; }BTNode; int SearchBTS(BTNode *T,int key,BTNode *f,...原创 2018-04-16 21:34:59 · 993 阅读 · 0 评论