数据结构-二叉树
FiveRicer
这个作者很懒,什么都没留下…
展开
-
二叉树 - 判断类型(二)
一、满二叉树(FT - Full Tree)用树的DP来判断。对节点统计他左子树、右子树的总数和左右子树的层数。根据节点数 = pow(2,层数) - 1;来计算 static bool isFullTree(Node head) { if(head == null) { return true; } Info data = Process2(head); return data.nod.原创 2021-10-06 23:34:07 · 129 阅读 · 0 评论 -
二叉树-判断树类型(一)
一、二叉搜索树(BST - Binary Search Tree)用中序遍历很容易实现,只要用中序遍历的过程是单调升序就代表是二叉搜索树非递归://判断是否为二叉搜索树(binary search tree) //中序遍历 static bool checkBST1(Node head) { if (head == null) return true; Stack<Node> stack原创 2021-10-05 22:36:44 · 533 阅读 · 0 评论 -
二叉树-计算最长宽度
通过用队列完成二叉树的层次遍历,来计算最长宽度。实现:用一个字典/hash表来存二叉树中每个节点所在的层数,然后根据所在层数统计该层的节点个数,再比对每层的宽度大小来确定最长宽度。代码: static int MaxWidth(Node head) { if(head == null) { return 0; } //队列存二叉树的顺序遍历原创 2021-10-04 22:17:36 · 87 阅读 · 0 评论 -
二叉树-递归/非递归遍历
二叉树的遍历有先序、中序、后序遍历三种方式。先:头左右。中:左头右。后:左右头一、递归遍历1)先序遍历 static void PreOrderRecur(Node head) { if(head == null) { return; } Console.WriteLine("Node:"+head.value); PreOrderRecur(head.left);原创 2021-10-03 22:44:56 · 77 阅读 · 0 评论