随笔分类 -  算法

摘要:要求:输入一棵二叉排序树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点的指针的指向。 方法一:我们借助一个容器来顺序存储结点的指针,然后改变指针的指向。 方法二:我们边遍历边改变指针的指向。 阅读全文
posted @ 2014-05-07 22:36 月轩 阅读(1133) 评论(0) 推荐(0)
摘要:实现一个函数复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。 阅读全文
posted @ 2014-05-06 21:06 月轩 阅读(136) 评论(0) 推荐(0)
摘要:输入一个二叉树,查找该树的所有路径(从根结点到叶结点的通路),并返回和(路径上所有结点值的和)为某一指定值的路径。 阅读全文
posted @ 2014-05-05 22:03 月轩 阅读(180) 评论(0) 推荐(0)
摘要:要求:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。 算法思想:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直到队列中所有的结点都被打印出来为止。 阅读全文
posted @ 2014-05-04 20:14 月轩 阅读(155) 评论(0) 推荐(0)
摘要:定义栈的数据结构,在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min , push , pop 的时间复杂度都是O(1)。 阅读全文
posted @ 2014-04-30 15:54 月轩 阅读(182) 评论(0) 推荐(0)
摘要:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:输入矩阵 {1, 2, 3, 4 } {5, 6, 7, 8 } {9, 10, 11, 12 } {13, 14, 15, 16 } 输出:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 代码如下: 阅读全文
posted @ 2014-04-29 22:49 月轩 阅读(215) 评论(0) 推荐(0)
摘要:完成一个函数,输入一个二叉树,该函数输出它的镜像。 阅读全文
posted @ 2014-04-28 19:54 月轩 阅读(159) 评论(0) 推荐(0)
摘要:输入2棵二叉树A和B,判断B是不是A的子结构。 阅读全文
posted @ 2014-04-27 19:56 月轩 阅读(152) 评论(0) 推荐(0)
摘要:输入两个递增排序的链表,合并这两个链表并使新链表中的结构任然递增!~~~~~上代码,递归的~~~~~ 阅读全文
posted @ 2014-04-25 22:49 月轩 阅读(358) 评论(0) 推荐(0)
摘要:输入两个递增排序的链表,合并这两个链表并使新链表中的结构任然递增!~~~~~上代码,非递归的~~~~~ 阅读全文
posted @ 2014-04-25 22:33 月轩 阅读(245) 评论(0) 推荐(0)
摘要:输入一个链表的头结点,反转该链表,并输出反转后链表的头结点。 阅读全文
posted @ 2014-04-25 19:40 月轩 阅读(117) 评论(0) 推荐(0)
摘要:输入一个链表,输出该链表中倒数第K个结点。 阅读全文
posted @ 2014-04-24 20:28 月轩 阅读(232) 评论(0) 推荐(0)
摘要:调整数组循序使奇数位于偶数前面 阅读全文
posted @ 2014-04-24 16:37 月轩 阅读(176) 评论(0) 推荐(0)
摘要:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 阅读全文
posted @ 2014-04-24 15:20 月轩 阅读(153) 评论(0) 推荐(0)