随笔分类 - Data Structures

摘要:比如说字符串abcdefgh,那么反转顺序为 abcdefgh => badcfehg => dcbahgfe => hgfedcba这种算法对于字符串的位数等于2的N次方,是很简单的,比如说,一个长度8的字符串,其反转算法如下:如果字符串的位数不等于2的N次方呢?这也是大多数情况,我们需要额外进行很多判断,逻辑不要太复杂,所以未必是一种好办法。我们不妨考虑,扩展这个需要反转的字... 阅读全文
posted @ 2010-04-23 16:11 包建强 阅读(4554) 评论(28) 推荐(1) 编辑
摘要:[代码] 阅读全文
posted @ 2010-03-25 14:43 包建强 阅读(1976) 评论(0) 推荐(0) 编辑
摘要:声明,本文所有11道算法题目,覆盖了基本上所有常见的二叉树问题,全都用C#实现,并测试通过,代码下载:BinNode.zip目录:1.二叉树三种周游(traversal)方式:2.怎样从顶部开始逐层打印二叉树结点数据3.如何判断一棵二叉树是否是平衡二叉树4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复杂度如果是O(n2)则不得分。 5.如何不用递归实现二叉树的前序/后序/中序遍历?6... 阅读全文
posted @ 2009-12-28 00:00 包建强 阅读(27754) 评论(29) 推荐(4) 编辑
摘要:声明,本文所有9道算法题目,覆盖了基本上所有常见的栈/队列问题,全都用C#实现,并测试通过,代码下载:StackAndQueue.zip 目录: 1.设计含min函数的栈,要求min、push和pop的时间复杂度都是o(1)。 2.设计含min函数的栈的另解 3.用两个栈实现队列 4.用两个队列实现栈 5.栈的push、pop序列是否一致 6.递归反转一个栈,要求不得重新申请一个同样的栈,空间复杂度o(1) 7.给栈排个序 8..如何用一个数组实现两个栈 9..如何用一个数组实现三个栈 阅读全文
posted @ 2009-12-21 00:35 包建强 阅读(11719) 评论(34) 推荐(6) 编辑
摘要:声明,本文所有13道算法题目,覆盖了基本上所有常见的单链表问题,全都用C#实现,并测试通过,代码下载:TestLink.zip1.单链表反转2.找出单链表的倒数第4个元素3.找出单链表的中间元素4.删除无头单链表的一个节点5.两个不交叉的有序链表的合并6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。7.单链表交换任意两个元素(不包括表头)8.判断单... 阅读全文
posted @ 2009-12-11 00:09 包建强 阅读(21679) 评论(51) 推荐(14) 编辑