摘要:
先使用先序的方法建立一棵二叉树,然后分别使用递归与非递归的方法实现前序、中序、后序遍历二叉树,并使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,分别使用了front和rear两个数组的下标来表示入队与出队,还有两个操作就是求二叉树的深度、结点数。。。[cpp]view plaincopy#include"iostream"#include"queue"#include"stack"usingnamespacestd;//二叉树结点的描述typedefstructBiTNod 阅读全文
摘要:
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。 不合题意的解法如下: 我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234--->4abcd123--->34abcd12--->234abcd1--->1234abcd。代码如下所示:[cpp]view plaincopyRightShift(int*arr,intN,intK){while(K--){intt=arr[N-1];for(inti=N-1;i>0;i--){arr[i]=arr[i-1];}arr[0]=t;}} 阅读全文
摘要:
只知道先序序列和后序序列是无法求出唯一的树,所以不做讨论。[cpp]view plaincopy#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;structBinaryTreeNode{charc;BinaryTreeNode*lchild,*rchild;BinaryTreeNode(){lchild=NULL,rchild=NULL;}};structBinaryTreeNode*root1,*root2;charpreorder[100],inorder[100] 阅读全文
摘要:
今天看了一下C++ Primer中关于const用法的介绍,讲得很好, 收益匪浅,于是做一个总结,方便以后再次查看。 但是c++在c的基础上新增加的几点优化也是很耀眼的,就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重。 一、const变量 1、限定符声明变量只能被读 const int i=5; int j=0; …… i=j; //非法,导致编译错误 j=i; //合法 2、 必须初始化 const int i=5; //合法 const int j; //非法,导致编译错误 3、在另一连接文件中引用... 阅读全文
摘要:
[cpp]view plaincopy//功能:由src所指内存区域复制count个字节到dest所指内存区域。//说明:src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针void*memmove(void*dest,constvoid*src,size_tcount){assert((dest!=NULL)&&(src!=NULL));//安全检查assert(count>0);char*psrc=(char*)src;char*pdest=(char*)dest;//检查是否有重叠问题if(pdest<psrc){// 阅读全文
摘要:
题目:已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。分析:要保证rand10()在整数1-10的均匀分布,可以构造一个1-10*n的均匀分布的随机整数区间(n为任何正整数)。假设x是这个1-10*n区间上的一个随机整数,那么x%10+1就是均匀分布在1-10区间上的整数。由于(rand7()-1)*7+rand7()可以构造出均匀分布在1-49的随机数(原因见下面的说明),可以将41~49这样的随机数剔除掉,得到的数1-40仍然是均匀分布在1-40的,这是因为每个数都可以看成一个独立事件。下面说明为什么(rand7()-1)*7 阅读全文
摘要:
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非 递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和 理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, 如 abc 的全排列: abc, acb, bca, dac, cab, cba一.全排列的递归实现为方便起见,用123来示例下。123的全排列有123、132、213、231、312 阅读全文
摘要:
Android的最重要的组件式service和activity,那么在使用的过程中,我们最常遇到的问题是他们之间的通信问题。当然今天我们不研究底层的实现问题,我从上层的应用的如何使用的角度进行研究。首先Activity调用Service这个是比较基础的,它有两种常见的方法;第一, 通过Intent,这个比较简单了,可以指定package name和class name的方式来调用,Intent.setClassName这个成员即可。通过putString来装载数据,startService(intent)即可例子如下:Intent regIntent = new Intent(“com.ser 阅读全文
摘要:
1. Android四大组件: Activity:程序与用户交互的窗口,初始化界面 service:后台服务于Activity,封装有一个完整的功能逻辑实现 ContentProvider:是Android提供的第三方应用数据访问方案,可以派生Content Provider 类,对外提供数据 BroadCast Receiver:接受一种或者多种intent做触发事件,然后封装成notification,统一了android的时间广播模型2.android的五种常用布局:五个布局嵌套使用,可以做出很好的效果 LinearLayout:线性布局,分为垂直布局和水平布局 Relati... 阅读全文
摘要:
为什么需要反馈Crash报告?做Android应用程序,要尽量避免程序Crash的发生。虽然说零Crash是程序员追逐的最终目标,但是现实的情况是,程序员只能尽量的减少Crash的发生,而几乎不可能完全杜绝Crash。也许,你认为你的应用的健壮性已经近乎完美,轻松的经受住了测试部门魔鬼般的考验,但是当你的应用发布到市场,面对百万甚至千万级别的用户的时候,可能就没有那么幸运了。基于以上原因,一般的应用程序,都要有一个Crash反馈的机制。程序员可以根据反馈的结果,对当前的版本的代码进行改进,使发布的下一个版本更加稳定。如何反馈?先来看如何捕获Crash的发生。Java中有一个接口,Uncaugh 阅读全文