- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 输入一个整数数组,判断该数组是不是某个二叉搜索树的前序遍历结果
输入一个整数数组,判断该数组是不是某个二叉搜索树的前序遍历结果。如果是则返回true,否则返回false。假设输入数组的任意两个数字都互不相同。 /* * PreOrder.cpp * * Created on: 2015年7月7日 * Author: hxg */ #include // BST:Binary Search Tree,二叉搜索树 b
2015-07-07 16:03:15
677
原创 代码记录
//递归函数统计字符串中第一个空字符前面的字符长度 int mystrlen(char *buf, int N) { if (buf[0] == 0 || N == 0) return 0; else if (N == 1) return 1; int t = mystrlen(buf, N / 2); if (t return t; else return (t + my
2015-05-28 21:24:20
441
转载 利用位运算实现两个整数相加
int Add(int a, int b) { if (b == 0) return a; //没有进位的时候完成运算 int sum, carry; sum = a ^b; //完成第一步没有进位的加法运算 carry = (a&b) //完成第二步进位并且左移运算 return Add(sum, carry); //递归,相加 } 程序员面试宝典第4版40页。
2015-05-25 15:15:42
650
转载 (x&y)+((x^y)>>1)
很不错的思路,虽然不算高效,但如果在汇编中的话,这种方法可以不产生高位溢出。 大概思路应该是这样: (x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值,最后汇总。 1、是x,y对应位都是1,用x&y计算其平均值; 2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算机这些位的和,>>1相当于除2; 3、是x,
2015-05-25 14:49:42
451
原创 在所有当代计算机中,至少有部分中断处理程序是用汇编语言写的。
所有中断都从保存寄存器开始,对于当前进程而言,通常是在进程表项中。随后,会从堆栈中删除由中断硬件机制存入堆栈的那部分信息,并将堆栈指针指向一个由进程处理程序使用的临时堆栈。 一些诸如保存寄存器值和设置堆栈指针等操作,无法用C语言这一类高级语言描述,所以这些操作通过一个短小的汇编语言例程来完成。
2015-03-25 21:13:16
886
AnyBizSoft PDF to Word V3.0.1中文版.rar
2014-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人