第五章学习了树与二叉树等相关内容 具体有如何去遍历一颗二叉树,分为层次遍历,先序遍历,中序遍历和后序遍历。其次还有最优的哈夫曼树,怎么去构造一棵哈夫曼树,从低往上构造等等。以及树的构造中会用到的链式存储及顺序存储结构还有借助数组来解决相关问题,定义树时采用的是递归的方式。 #include<iost ...
分类:
其他好文 时间:
2020-05-30 16:05:52
阅读次数:
78
1 Node* pre = NULL,*cur = BULL; 2 Node* treeToDoubleyList(Node* root){//二叉搜索树中序遍历有序 3 if(root == NULL) 4 return NULL; 5 Node* dummy = new Node; 6 dumm ...
分类:
其他好文 时间:
2020-05-30 15:49:31
阅读次数:
85
一、知识框架 二、课堂疑问解答 1、定义 ①typedef struct ②me:typedef struct { { char data; char data; int parent; int parent; }Node; }BiTNode; typedef struct int n; { cin ...
分类:
其他好文 时间:
2020-05-30 12:38:42
阅读次数:
105
还是一样的,在中序中找出那个众数存一下次数 主函数看谁的value最大 可以用map,是哦! https://leetcode.com/problems/find-mode-in-binary-search-tree/discuss/98103/Java-AC-Solution ...
分类:
其他好文 时间:
2020-05-30 10:55:13
阅读次数:
53
题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 ...
分类:
其他好文 时间:
2020-05-29 18:04:49
阅读次数:
75
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路:中序遍历第k个节点 TreeNode* KthNode(TreeNode* pRoot, int k) { //中序遍历 int count=0; Tre ...
分类:
其他好文 时间:
2020-05-29 17:42:34
阅读次数:
52
//非递归中序遍历 //设置一个函数,该函数的作用是深入到最左侧子树但是不遍历 void inOrder_Ii(TreeNode *bt,stack S) { while (bt) { S.push(bt); if(bt->lc) bt = bt->lc; } } void inOrder_I(Tr ...
分类:
其他好文 时间:
2020-05-26 22:12:11
阅读次数:
69
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:前序遍历,第一个节点为二叉树root;中序遍历,左中右, ...
分类:
其他好文 时间:
2020-05-25 17:51:28
阅读次数:
78
Q:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。 A: 1.中序遍历 根据出现降序的次数 找出两个错误的节点,交换节点值 只出现一次降序 则第一个为降序时较大的,第二个为降序时较小的 出现了两次降序 则第一个为第一次降序时较大的,第二个为第二次降序时较小的 2.为了满足 ...
分类:
其他好文 时间:
2020-05-25 15:12:22
阅读次数:
40
/** * 给出一个二叉树的节点,返回该节点的前驱节点(中序遍历的上一个节点称为前驱节点) * <p> * 1)如果该节点有左子树,那么该节点的前驱节点一定是左子树上最右边的节点; * 2)如果该节点无左子树,那么往上找; * 3)如果该节点是父节点的右子树,那么返回该父节点;如果该节点是父节点的左 ...
分类:
其他好文 时间:
2020-05-24 13:47:28
阅读次数:
50