04 2012 档案
摘要:问题:如何检查一个单向链表上是否有环?解答:1,将所有的遍历过的节点用某个结构存储起来,然后每遍历一个节点,都在这个结构中查找是否遍历过,如果找到有重复,则说明该链表存在循环;如果直到遍历结束,则说明链表不存在循环。这个结构我们可以使用hash来做,hash中存储的值为节点的内存地址,(java中可以用object.hashcode()做为key放在一个hashtable中. 这样当hashtable中出现重复key的时候说明此链表上有环)这样查找的操作所需时间为O(1),遍历操作需要O(n),hash表的存储空间需要额外的O(n)。所以整个算法的时间复杂度为O(n),空间复杂度为O(n)。2
阅读全文
摘要:operator是C++的一个关键字,它和C++的运算符连用,构成一个运算符函数名,例如operator++(),operator++在这里就是一个函数名。现在我们有一个num类:class num{public: num(){} ~num(){} set,get方法private: int n;};创建num类的一个对象:num i;如果我们在程序中想通过++i来实现对象i的成员n的自加,那么我们就必须要重载前置自加运算符,我们可以简单的定义为如下形式:void operator++(){++n;}关键字operator的前面是它的返回类型,后面的++表示重载的是++...
阅读全文
摘要:AWT中常用的布局管理器有如下几个:FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout,Swing还提供了一个BoxLayout。FlowLayout从左向右排列所有组件,遇到边界就会折回下一行从新开始。它有三个构造器FlowLayout(),FlowLayout(int align)和 FlowLayout(int align, int hgap, int vgap),其中的hgap和vgap代表水平间距和垂直间距,align指的是组件的排列方向(从左向右,从右向左,从中间向两边),我们可以使用FlowLayout的
阅读全文

浙公网安备 33010602011771号