上一页 1 2 3 4 5 6 7 8 9 ··· 36 下一页
  2011年10月7日
摘要: [链表]在O(1)时间删除链表结点 阅读全文
posted @ 2011-10-07 19:47 dartagnan 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。 阅读全文
posted @ 2011-10-07 17:22 dartagnan 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入8/ \6 10 /\ /\5 7 9 11输出8 6 10 5 7 9 11。分析:这曾是微软的一道面试题。这道题实质上是要求遍历一棵二元树,只不过不是我们熟悉的前序、中序或者后序遍历。我们从树的根结点开始分析。自然先应该打印根结点8,同时为了下次能够打印8的两个子结点,我们应该在遍历到8时把子结点6和10保存到一个数据容器中。现在数据容器中就有两个元素6 和10了。按照从左往右的要求,我们先取出6访问。打印6的同时要把6的两个子结点5和7放入数据容器中,此时数据容器中有三个元素10、5和7。接下来我 阅读全文
posted @ 2011-10-07 17:11 dartagnan 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,这样得到的pop序列就是4、5、3、2、1。但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。分析:这到题除了考查对栈这一基本数据结构的理解,还能考查我们的分析能力。这 阅读全文
posted @ 2011-10-07 16:46 dartagnan 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们用field表示字段,用method表示方法,那么加上static区分后就 有四种: class field:有用static修饰的fieldclass method:有用static修饰的metho... 阅读全文
posted @ 2011-10-07 11:52 dartagnan 阅读(876) 评论(0) 推荐(0) 编辑
  2011年10月6日
摘要: 最长公共子串(LCS),有三种情况:1.公共子串的元素必须相邻. 2.公共子串的元素可以不相邻联单3. 求多个字符串而不是两个字符串的最长公共子串1.公共子串的元素必须相邻: LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置.下面是字符串21232523311324和字符串312123223445的匹配矩阵,前者为X方向的,后者为Y方向的。不难找到,红色部分是最长的匹配子串。通过查找位置我们得到最长的匹配子串为:21232 0 0 0 1. 阅读全文
posted @ 2011-10-06 09:48 dartagnan 阅读(26044) 评论(1) 推荐(12) 编辑
摘要: 最长公共子序列与最长公共子串的区别在于最长公共子序列不要求在原字符串中是连续的,比如ADE和ABCDE的最长公共子序列是ADE。 我们用动态规划的方法来思考这个问题如是求解。首先要找到状态转移方程: 等号约定,C1是S1的最右侧字符,C2是S2的最右侧字符,S1‘是从S1中去除C1的部分,S2'是从S2中去除C2的部分。 LCS(S1,S2)等于下列3项的最大者: (1)LCS(S1,S2’) (... 阅读全文
posted @ 2011-10-06 09:37 dartagnan 阅读(545) 评论(0) 推荐(0) 编辑
  2011年10月5日
摘要: 问题描述:输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -4 13 -5 -2,则最大子序列和为20。序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。算法一://穷举法,复杂度O(n^3)long maxSubSum1(const vector<int>& a){long maxSum = 0;for (int i = 0; i < a.size(); i++){for (int j = i; j < a.size(); j++){long thi 阅读全文
posted @ 2011-10-05 20:26 dartagnan 阅读(246) 评论(0) 推荐(0) 编辑
摘要: (1)const char *p (2)char const *p 都是指向char类型的const对象指针,p不是常量,我们可以修改p的值,使其指向不同的char。(3)char* const p 此时*p可以修改,而p不能被修改。 如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量... 阅读全文
posted @ 2011-10-05 15:19 dartagnan 阅读(1121) 评论(0) 推荐(0) 编辑
摘要: TCP协议提供可靠的连接服务,采用三次握手建立一个连接。以下步骤概述了通常情况下客户端计算机请求与服务器计算机简历TCP的过程: TCP三次握手图解 TCP图解3次握手 1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。 2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN... 阅读全文
posted @ 2011-10-05 11:22 dartagnan 阅读(713) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 36 下一页