自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉树(利用栈和队列实现递归和非递归遍历,构建等)

/** 二叉树的链式存储实现 队列实现层序插入和层序遍历 栈实现非递归的二叉树的遍历 **/#include#include#include#include//二叉树元素类型typedef char TElemType;//二叉树节点 typedef struct BiTreeNode{ TElemType QItem; struct BiTreeNode *l

2013-03-31 14:05:41 2603

原创 外部排序

所谓的外部排序就是在磁盘上排序而不是在内存,刚开始也是看数据结构而产生写一个外排的冲动。算法大致过程是:对一个数据较多的文件进行排序,数据少的话就没必要用外排了,我是先产生了一个数据文件,然后把他分成n段,对每段内排,排完再写入文件,最后把这些片段归并起来,就成了一个排序好的文件了。其实写完发现没什么含量,就一个文件操作,虽然也写的磕磕绊绊,还请人帮忙了,数据少的时候可以,100万以上就很

2013-03-29 08:48:15 589

原创 分治法实现pow(x,n)函数的功能

x^n=x x x.....x朴素算法的时间复杂度是O(n)采用分治(当n为偶数)x^n=x^(n/2)*x^(n/2)T(n)=2T(n/2)+O(1)时间复杂度为O(logn)我想的是采用函数的递归来实现#includeint mypow(int x,int n){ int sum; if(n==1) return x; if(n&1)//n为奇

2013-03-26 16:57:11 1601 1

原创 快速统计一个数的二进制下1的个数

方法貌似挺多,这里的就是每次把靠右的那一位1统计出来,并置为0,循环搞定。#includeint count(int num){ int sum=0; while(num) { num&=(num-1); sum++; } return sum;}int main(){ int x; while(scanf("%d",&x)) { printf("%d

2013-03-26 12:40:21 583

原创 c语言写的通讯录

无界面的通讯录,能存储联系人姓名和号码,当然没有保存到文件,因为只是个数据结构的练手。用到了链表的一些操作,能按关键字(姓名和号码都可以)模糊查找,并且显示的时候是按查找的次数来显示,查找的字符串匹配算法用的是KMP算法,纯属杀鸡用牛刀,初始化的时候还用到了递归,三百多行代码。/**@lkxiaolou 通讯录**/ #include#include#include/*

2013-03-26 10:33:24 924

原创 c语言中不用while,for,do-while实现循环

如果不用循环结构实现一个循环体,怎么解?先看代码#includeint circle(int n){if(n>1000) return 1;else { printf("%d\t",n); circle(n+1); }}int main(){ int n=1; circle(n); return 1;}是不是有种被调戏的感觉?递归是可解的,还

2013-03-26 10:20:35 2415

原创 12个人排队问题

阿里巴巴和蘑菇街的笔试题,原题是这样的:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?将这12个人从1到12编号,只要确定矮的那排,后面一排也就确定了,因为是有序的。然后第一个位置只能是1(同样12也只能在第二排的最后);第二个位置只能是2或者3,如果是4的话,2,3必为上面一排的第一和第二个位置,3比4小了,

2013-03-18 17:38:56 3449

原创 指针的一些看法

#includeint main(){ int a[20]; int *p1=a; int *p2=a+5; printf("%d\n",p2-p1); printf("%d\n",(int)p2-(int)p1); printf("%d\n",p2-(int)p1);}地址加上(减去)一个数,其实是地址加上减去这个数乘以地址类型的大小,对地址和地址之间的加减也成立,这也就是

2013-03-18 10:50:57 457

原创 vi常用命令

先学这些常用的,不出意外应该够用了模式指令模式+i=文本输入模式文本输入模式+esc=指令模式H左J下K上L右d+方向键 删除dd删除整行u撤销s删除列并进入文本编辑模式将光标移动到将要复制的行处,按yy进行复制当前行(按nyy复制n行),再移动到粘贴位置,按p进行粘贴将光标移到复制的首位置,按下v

2013-03-17 10:37:14 456

原创 迭代法实现开方运算

/**计算机组成原理--迭代法求根号a x=sqrt(a) Xn+1=(Xn+b/Xn)/2**/#include#includedouble Sqrt(double e,double a){ double x1=10,x2=10;//初始状态 ,只要不取负数和0就行 x2=(x1+a/x1)/2;//第一次迭代 while(fabs(x1-x2)>e) {

2013-03-17 08:45:31 1043

原创 感受下函数指针(指针函数)和结构体内部函数

函数指针是指向函数的指针,指针函数是函数返回指针类型//函数指针#includeint fun(int a){ return a*a;} int dy(int (*f)(int x),int a){ return f(a);}int main(){ int a=9; int sum; int (*f)(int x)=fun; sum=dy(f,a);//f是函

2013-03-16 13:07:11 707

libguid40.dll和libmmd.dll

python MySQL模块所需的两个动态链接库文件

2013-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除