字典树

6-06 2,440 views

字典树,又名Trier树,可以用于单词的查找和统计。 字典树的示例如下图所示,其中,若根节点为第0层,则第k层节点表示字典中单词前k个字符,从根节点至树中标...
阅读全文 0

求解最长单调递增子串

6-05 2,250 views

求解最长递增子串可分为两种情况,即子串连续或非连续。 例如,对于整数串{1,3,5,1,-1,4,5,3,1,8,3,4,6,2,4,6,7,8,6,4} 其连续递增子串为{2,4,6,7,8},非连续...
阅读全文 0

求和最大的连续子串

6-05 1,725 views

思路: 采用动态规划进行求解,令: maxSum[k]表示子串list{0,k}的最大连续子串和, maxSumIncludeK[k]表示子串list{0,k}中末尾为k的最大连续子串和, 则 maxS...
阅读全文 0

不使用加减乘除实现加法

6-04 1,855 views

思路: 例如: a=5,b=9,a+b=14 a转换为二进制形式为101,b转换为二进制形式为1001,其和转换为二进制形式为1110。 对于二进制形式的相加,可分两步进行操作...
阅读全文 0

线索二叉树:二叉搜索树转换为双向链表

6-03 2,988 views

对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点。 思路: 采用递归思想,对于...
阅读全文 0

根据二叉树的先序、中序遍历结果重建二叉树

6-03 1,801 views

先序遍历为:1 2 4 5 3 6,中序遍历为:4 2 5 1 6 3 思路: 先序遍历的第一个元素为根节点,在中序遍历中找到这个根节点,从而可以将中序遍历分为左右两个部...
阅读全文 0

验证栈的出栈序列是否正确

6-03 1,821 views

思路: 遍历出栈序列,对于其中任一元素k,查看当前栈是否为空,若为空或栈顶元素不等于k,则根据入栈序列进行入栈,直至入栈序列中的元素k入栈。若直至入栈...
阅读全文 0

求二叉树的镜像

6-02 1,923 views

思路: 采用递归的思想。对于根节点,若其左子树或右子树不为空,则互换左、右子树,然后对于左、右子树,分别递归上述处理方法,直至叶节点。 示例: 代码...
阅读全文 0

多叉树的宽度优先搜索BFS

6-01 1,982 views

首先,选择一个合适的数据结构存储多叉树,我使用了“左孩子右兄弟”的方法,使用二叉树来存储多叉树,便于实现和遍历。 其次,宽度优先搜索时: 1.用队列(先...
阅读全文 0

链表反转的递归和非递归

6-01 1,923 views

如题,给出链表反转的递归和非递归算法: C Node *reverse (Node *head) { Node *p1=NULL,*p2=NULL,*p3=NULL; if(...
阅读全文 0