摘要: 题目:设计一个类,我们只能声称该类的一个实例。单例模式是一种常见的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问。应用场景:对于系统中的某些类来说,只有一个实例很重要,例如一个系统中可以存在多个打印进程,但是只能有一个... 阅读全文
posted @ 2015-06-10 23:17 Stephen_Hsu 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目:如下为类型 CMyString 的声明,请为该类型添加赋值运算符函数。类的声明如下: 1 class CMyString 2 { 3 public: 4 CMyString(char *pData = NULL); 5 CMyString(const CMyString &st... 阅读全文
posted @ 2015-06-09 14:31 Stephen_Hsu 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 二叉树的前序非递归遍历: 前序遍历的顺序:根结点——左孩子——右孩子“。根据前序遍历访问结点的顺序可知:优先访问根结点,然后再分别访问左孩子和右孩子。对于任意结点来说,都可将其视为根结点,因此可直接访问,访问完之后,若其左孩子不为空,则按照相同规则访问左子树;当访问了左子树之后,再访问它的右子树。其... 阅读全文
posted @ 2014-11-15 21:52 Stephen_Hsu 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 一、二叉树的定义: 二叉树是每个结点最多有两个子树的有序树。二叉树常被用于实现二叉查找树。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于2。有根二叉树还要满足根结点的度不大于2。有了根结点后,每个顶点定义了唯一的根结点,和最多2个子结点。然而,没... 阅读全文
posted @ 2014-11-15 16:24 Stephen_Hsu 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 将数组中的大写字母与小写字母分开一:一个数组总存储有且in有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前。(相对顺序没有要求)【2012·中兴、2013·腾讯】使用快排的一次排列即可实现,代码如下: 1 #include 2 #include 3 #inclu... 阅读全文
posted @ 2014-11-15 15:50 Stephen_Hsu 阅读(1052) 评论(0) 推荐(0) 编辑
摘要: 排序系列之——快速排序快速排序是对冒泡排序的一种改进。基本思想是基于分治法:1、在待排序列表L[1···n]中任取一个元素pivot作为基准,通过一趟排序将待排序列表划分为独立的两部分L[1···k-1],L[k+1···n],使得L[1···k-1],中的所有元素都小于等于privot,L[k+1... 阅读全文
posted @ 2014-11-13 23:32 Stephen_Hsu 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 排序之——冒泡排序:基本思想:假设待排序表长为N,从后往前(或者从前往后)两两比较相邻元素的值,若为逆序(arr[i-1]>arr[i]),则交换他们,直到序列比较完。这时一趟冒泡。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #de... 阅读全文
posted @ 2014-11-12 23:43 Stephen_Hsu 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 一:写一个算法将栈里的元素升序排列。栈的实现未知,算法只能借助栈完成,可使用的函数有push、pop、top、empty等。思路:可借助另外一个栈来完成排序。1、从原始栈里依次弹出元素放入辅助栈;2、每当将要压入的元素是得辅助栈不是升序排列,就将辅助栈里面的元素重新压入原始栈中;3、直到辅助栈里面的... 阅读全文
posted @ 2014-11-12 15:24 Stephen_Hsu 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 本篇主要介绍快慢指针。快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2次,慢指针每次向前移动1次。一、快慢指针的经典应用:判断一个链表是否存在环思路:1、使用快慢指针,慢指针每次走一步,快指针每次走两步。2、快指针有两种状态:当链表无环时,快指针走到末... 阅读全文
posted @ 2014-11-11 17:43 Stephen_Hsu 阅读(706) 评论(0) 推荐(0) 编辑
摘要: 一:特殊要求的结点删除问题描述:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个)。请将该节点从单链表中删除。思路:根据题意,似乎很难完成。其实我们可以将当前结点的后续结点的值域赋值给当前结点的值域。然后再删除当前结点的后续结点,即可完成”狸猫换太子“。代... 阅读全文
posted @ 2014-11-10 22:22 Stephen_Hsu 阅读(361) 评论(0) 推荐(0) 编辑