上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 31 下一页
  2012年12月3日
摘要: 转自:http://www.cnblogs.com/qyaizs/articles/2039101.html分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Student的别名。Stu==struct Student 另外这里也可以不写Student(于是也不... 阅读全文
posted @ 2012-12-03 15:29 kkmm 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/candyming/archive/2011/12/04/2275448.html尾部递归是一种编程技巧。递归函数是指一些会在函数内调用自己的函数,如果在递归函数中,递归调用返回的结果总被直接返回,则称为尾部递归。尾部递归的函数有助将算法转化成函数编程语言,而且从编译器角度来说,亦容易优化成为普通循环。这是因为从电脑的基本面来说,所有的循环都是利用重复移跳到代码的开头来实现的。如果有尾部归递,就只需要叠套一个 stack,因为电脑只需要将函数的 parameter 改变再重新跑一次。例如,可以把上一次函数的输出当作下一次的输入。然而,利用尾部 阅读全文
posted @ 2012-12-03 12:51 kkmm 阅读(2505) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.leetcode.com/2011/07/lowest-common-ancestor-of-a-binary-search-tree.html思路,先判断入口是否有非法输入。1 如果某一个root==p || root == q,那么LCA肯定是root(因为是top down,LCA肯定在root所囊括的树上,而root又是p q其中一个节点了,那么另外一个节点肯定在root之下,那么root就是LCA),那么返回root2 如果root<min(p, q),那么LCA肯定在右子树上,那么递归3如果max(p, q)<root,那么LCA肯定在左子树 阅读全文
posted @ 2012-12-03 12:42 kkmm 阅读(2199) 评论(0) 推荐(0) 编辑
  2012年11月29日
摘要: //当我们如下时:for (int i =0; i < arr.Length; i++){ // }//我们更因该这样:int L = arr.Length;for (int i =0; i < L; i++){ // }因为i < array.Length会调用拆箱操作。那么for循环运行很多次的时候,会导致效率的下降。所以我们需要提前拆箱提高效率。再看一个例子for (int i = 0; i < 1000000; i++){ Console.WriteLine("{0}", i);}这里的Console.WriteLine("{0}& 阅读全文
posted @ 2012-11-29 22:50 kkmm 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/mirobright/archive/2009/11/21/1607773.html尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我们将深入理解垃圾回收器,还有如何利用静态类成员来使我们的应用程序更高效。* 更小的步伐 == 更高效的分配为了更好地理解为什么更小的足迹会更高效,这需要我们对.NET的内存分配和垃圾回收专研得更 阅读全文
posted @ 2012-11-29 22:35 kkmm 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 转自:http://masefee.blog.51cto.com/1737284/813812转眼间有过了一个月了,自从【C/C++语言入门篇】连载结束后,已经很久没有写博了。最近一直忙着本科毕业论文和工作上的任务,加上一个对于我来说非常重要的事情正在进行中。所以近段时间脑子一直处于绷紧状态,发现自己的脑细胞还真是不够用。加油!今天有朋友问到一个问题,那就是在C++的多重继承中,出现菱形状继承的情况下,在构造对象时的内存分布及构造函数的调用流程上出现了问题。最后跟他解释清楚之后,我感觉还是有必要把这个过程写下来,有什么说得不对的地方请大家提出宝贵意见,在此感谢,同时知道这里面的朋友可以直接略过 阅读全文
posted @ 2012-11-29 16:37 kkmm 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 前天和大学室友吃烧烤,其中谈到菱形继承的问题,突然发现脑中对这个几乎空白,所以晚上回来就上网搜了搜,言归正传,说到菱形继承,就要说到虚继承的概念,对于虚继承,就是为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后 阅读全文
posted @ 2012-11-29 16:20 kkmm 阅读(158) 评论(0) 推荐(0) 编辑
  2012年11月22日
摘要: 转自:http://blog.csdn.net/randyjiawenjie/article/details/6329572判断两个链表是否有公共节点的方法最简单的就是遍历到每个链表的最后一个节点,看他们是否是同一个节点:如果是同一个节点的话,那么两个链表肯定有公共节点:解释:因为链表是线性结构,不想树那样的非线性分叉结构typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; 一个链表有唯一的一个后序节点:如果两个链表中出现了公共节点,那么从该点开始,后面的节点都是公共的,肯定链表的最... 阅读全文
posted @ 2012-11-22 11:14 kkmm 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 本文为镜像二叉树的C++代码,为了代码简洁,将空节点和某个节点具有空孩子的情况放到了同一个逻辑下进行判断。typedef struct{ int value; BTNode *pLeft; BTNode *pRight;}BTNode;void BTMirror(BTNode *pHead){ if (pHead == NULL) return; BTNode *pTmp; pTmp = pHead->pLeft; pHead->pLeft = pHead->pRight; pHead->pRight = pTmp; BTMi... 阅读全文
posted @ 2012-11-22 10:33 kkmm 阅读(374) 评论(0) 推荐(0) 编辑
  2012年11月21日
摘要: #include <iostream>using namespace std;#define LEN 12int FindMinInRotateArray(int *arr, int len, int *min){ if (arr == NULL || len <= 0 || min == NULL) { return -1; } if (len == 2) { *min = arr[1]; return 1; } int mid = len/2; if (arr[0] < arr[mid]) { ... 阅读全文
posted @ 2012-11-21 22:46 kkmm 阅读(269) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 31 下一页