上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 58 下一页
  2013年10月11日
摘要: 如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。活跃在生物学、化学、军队、监狱、黑社会、恐怖组织等各个领域内的大量有识先辈们都曾经无数次地以实际行动证明了以上公理的正确性。除了上帝(设它可以改变世间万物的秩序)以外,相信没人有实力对它不屑一顾。在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。在引入细节之前,先说明一下命名规范的整体原则:同一性在编写一个子模块或派生类的时候,要遵循其基类或整体模 阅读全文
posted @ 2013-10-11 10:44 猿人谷 阅读(5820) 评论(1) 推荐(4) 编辑
  2013年10月10日
摘要: 用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。③把空指针转换成目标类型的空指针。④把任何类型的表达式转换成void类型。注意:stat. 阅读全文
posted @ 2013-10-10 17:05 猿人谷 阅读(15362) 评论(0) 推荐(2) 编辑
摘要: 面试题目:输入两颗二叉树A,B,判断B是不是A的子结构;#include #include using namespace std;typedef struct BinaryTreeNode{ int value; BinaryTreeNode * lchild; BinaryTreeNode *rchild;}BinaryTreeNode;typedef BinaryTreeNode * BiTree;void CreateBiTreeByLevel(BiTree &t,int Array[],int i,int len){ if(Array[i]==0||i > len) r 阅读全文
posted @ 2013-10-10 16:28 猿人谷 阅读(359) 评论(0) 推荐(0) 编辑
摘要: Email relay 和Email access分别用了什么协议?答:SMTP,POP31:多态是如何实现绑定的?多态的绑定可以分为运行是多态和编译时多态●编译时的多态性编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。●运行时的多态性运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。2:析构函数是虚函数的优点是什么?这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析 阅读全文
posted @ 2013-10-10 16:15 猿人谷 阅读(491) 评论(0) 推荐(0) 编辑
  2013年10月9日
摘要: 之前参加过华北计算机研究所和优酷土豆的笔试,都考到出栈顺序,之前数据结构学的不到位,遇到这类题时,还着实把我愣了一会,现在总结下,省得以后再遇到这类问题,也希望能给遇到同样问题的兄弟们一个参考。 废话不多说,直接上个例题。一个栈的入栈序列是a,b,c,d,e则栈的不可能的输出序列是:()A edcbd B decba C dceab D abcde 栈之根本——后进先出(Last In First Out , LIFO)初次接触到这个问题的人,或许会认为入栈abcde,所以出栈只能是edcba所以BCD都不对。 其实是这个问题描述有... 阅读全文
posted @ 2013-10-09 20:17 猿人谷 阅读(22637) 评论(1) 推荐(4) 编辑
摘要: 四则运算表达式 一种不需要括号的后缀表达法,我们把它称为逆波兰(Reverse Polish Notation , RPN)表示。它将复杂表达式转换为可以依靠简单的操作得到计算结果的表达式,解决了四则运算中括号改变运算符优先级的问题。 我们先来看看,对于"9+(3-1)×3+10÷2",如果要用后缀表示法应该是什么样子:“9 3 1 - 3 * + 10 2 / +” ,这样的表达式称为后缀表达式,叫后缀的原因在于所有的符号都是在要运算数字的后面出现。一.后缀表达式计算结果 为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果 阅读全文
posted @ 2013-10-09 16:59 猿人谷 阅读(3199) 评论(2) 推荐(4) 编辑
  2013年10月8日
摘要: 一.常见排序算法的实现1.冒泡排序冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。按照定义很容易写出代码:void bubbleSort(int arr[],int n){ int i,j,t; for(i=0;i void bubbleSort(int arr[],int n){ int i,j,t; for(i=0... 阅读全文
posted @ 2013-10-08 13:46 猿人谷 阅读(974) 评论(0) 推荐(0) 编辑
摘要: 1.各种排序算法的时间复杂度和空间复杂度分析选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。排序法平均时间最差情形稳定度额外空间备注冒泡O(n2) O(n2)稳定O(1)n小时较好交换 O(n2) O(n2)不稳定O(1)n小时较好选择O(n2)O(n2)不稳定O(1)n小时较好插入O(n2)O(n2)稳定O(1)大部分已排序时较好基数O(logRB)O(logRB)稳定O(n)B是真数(0-9),R是基数(个十百)ShellO(nlogn)O(ns) 11,则其双亲是结点[i/2]。如果2i>n,则结点i无左孩子(结点i为 阅读全文
posted @ 2013-10-08 13:31 猿人谷 阅读(276) 评论(0) 推荐(0) 编辑
  2013年10月6日
摘要: C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。 运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下: operator (){ } 运算符重载时... 阅读全文
posted @ 2013-10-06 21:21 猿人谷 阅读(1038) 评论(0) 推荐(0) 编辑
摘要: vmware 下 ubuntu 不能全屏显示在 vmware 下 安装 ubuntu后,默认分辨率是 800 * 600,可以设置以全屏显示;设置步骤:vmware 下启动 虚拟机,即 启动 ubuntu 系统进入 ubuntu 系统界面,系统 -> 首选项 -> 显示,设置分辨率为与自己计算机相同的分辨率设置完成使用 ctrl+alt+enter 可以在 全屏/非全屏 直接切换 阅读全文
posted @ 2013-10-06 10:22 猿人谷 阅读(29393) 评论(0) 推荐(4) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 58 下一页