搬运工

导航

2012年5月6日 #

二叉树层次遍历队列实现

摘要: 这念头学艺不精就要被人鄙视,自国外某知名软件公司面试完后,发现学过的全忘脑后了。对着面试官只能“说不知道”,“不好意思,想不起来了”。一点印象都没了,想憋都憋不出来啊。。。 一个简单的层次遍历,写着写着成了先序遍历。然后就死循环了。关键就是那一点未透——队列。 二叉树的层次遍历,是指从二叉树的第一层(根结点)开始,从上至下逐层遍历。在同一层中,则按从左到右的顺序对结点逐个访问。在进行层次遍历时,当前层结点访问完后,再按照它们的访问次序对各个结点的左孩子和右孩子顺序访问,这样一层一层进行,先遇到的结点先访问,这与队列的操作原则比较吻合。因此,在进行层次遍历时,可设置一个队列结构,遍历从二叉树.. 阅读全文

posted @ 2012-05-06 15:37 hackergodness 阅读(4078) 评论(1) 推荐(0) 编辑

2012年4月12日 #

Ubuntu 11.04 下OpenCV安装

摘要: 由于项目要求,需要使用OpenCV处理网络摄像头的视频数据,实现目标跟踪。首先当然是OpenCV配置了。环境要求Ubuntu11.04OpenCV 2.3.1具体步骤如下:(一)执行以下指令,删除ffmpeg and x264 的任何旧版本,如果以前没有安装也没有问题。sudo apt-get remove ffmpeg x264 libx264-dev(二)下载并安装x264: 下载一个最近的stable snapshot of x264版本,下载地址为:ftp://ftp.videolan.org/pub/videolan/x264/snapshots/. 下载的版本并没有严格的要求... 阅读全文

posted @ 2012-04-12 16:04 hackergodness 阅读(1786) 评论(3) 推荐(1) 编辑

2012年3月3日 #

size_t类型

摘要: size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。 例如:bitset的size操作返回bitset对象中二进制位中的个数,返回值类型是size_t。 例如:在用下标访问元素时,vector使用vector::size_type作为下标类型,而数组下标的正确类型则是size_t。 size_t是标准C库中定义的,应为unsigned int。 在C++中,设计 size_t 就是为了适应多个平台的 。size_t的引入增强了程序在不同平台上的可... 阅读全文

posted @ 2012-03-03 11:02 hackergodness 阅读(710) 评论(0) 推荐(0) 编辑

2012年2月17日 #

Ubuntu10.10 上海交大及其他教育网更新源

摘要: ---------------Ubuntu9.04源不能用伦,废伦啊!!!---------------呃,貌似10.10四月也停用了,囧!!!deb http://ftp.sjtu.edu.cn/ubuntu/ maverick main restricted universe multiverse deb http://ftp.sjtu.edu.cn/ubuntu/ maverick-backports main restricted universe multiverse deb http://ftp.sjtu.edu.cn/ubuntu/ maverick-proposed main 阅读全文

posted @ 2012-02-17 18:14 hackergodness 阅读(1380) 评论(0) 推荐(0) 编辑

2012年2月15日 #

Linux 命令解决小问题

摘要: 1、输出当前机器上所有运行的进程数,并按照字母表顺序排列。ps -e | cut -d ':' -f 3 | cut -d ' ' -f 22、统计某个文件内所有以a开始的单词数。cat american-english | grep ^a.* | wc -l3、列举所有/etc文件夹下面包含“.conf”字符的文件。ls -lSrp | grep [^/]$ | grep [\.] conf$ | head -n 5 阅读全文

posted @ 2012-02-15 19:53 hackergodness 阅读(166) 评论(0) 推荐(0) 编辑

2012年2月14日 #

Ubuntu 添加教育网更新源【转】

摘要: 教育网一般使用中科大,上交或者成都电子科技大学的源再加上台湾官方源(可选): 修改你的更新服务器列表。请在终端中执行下面的两条命令: 首先备份一下更新源地址配置文件: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup(备份) 在终端输入 sudo gedit /etc/apt/sources.list 更改文件 /etc/apt/sources.list,换成下面任意一组,保存之后,执行下面的两条指令来更新系统信息: sudo apt-get update # sudo apt-get upgrade 成功 #中国... 阅读全文

posted @ 2012-02-14 21:55 hackergodness 阅读(480) 评论(0) 推荐(0) 编辑

2012年2月13日 #

VMware Player tools for linux 安装

摘要: VMware Player是VMware Workstation旗下的免费虚拟机软件,目前版本的VMware Player已经支持创建虚拟机的功能,即对于普通学习Linux的用户来说,既免费又小巧精简的虚拟机软件VMware Player,成为了最好的选择...bla..bla... 但是经历了今天安装VMware Tools不禁让我深深鄙视VM,在此向virtualBox致敬。 由于实验需要,下载了VMware Player 4.0.24.0.2 build-591240。在上面跑了个Debian 6。 由于VMware Player本身并不集成VMware Tools工具包(毕竟就10.. 阅读全文

posted @ 2012-02-13 22:14 hackergodness 阅读(3036) 评论(0) 推荐(0) 编辑

sudo 安装 ——Debian 6

摘要: Linux中很多命令需要使用超级用户权限,在这些命令前添加sudo然后直接执行是很方便的。 那么就先要将自己的用户名添加到sudoers中:1.使用su命令切换到超级用户(在提示后输入root的密码)2.使用visudo命令(编辑/etc/sudoers文件),也可以直接使用编辑器编辑。3.找到root ALL=(ALL) ALL 这一行,在其下面一行添加xxx ALL=(ALL) ALL,其中xxx为你的用户名。4.保存即可起效。 阅读全文

posted @ 2012-02-13 17:15 hackergodness 阅读(320) 评论(0) 推荐(0) 编辑

2011年11月4日 #

volatile的使用

摘要: 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去预先假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 3). 多线程应用中被几个任务共享的变量 回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道... 阅读全文

posted @ 2011-11-04 22:32 hackergodness 阅读(217) 评论(0) 推荐(0) 编辑

2011年11月3日 #

内核总结之内存管理api (转)

摘要: 1. kmalloc(),主要用于字节大小的内存分配,物理地址连续,从按大小组冲的缓冲数组里分配数据,也是通过slab分配2. vmalloc(),仅仅在地址空间连续,物理空间的连续性不做保证。其分配的过程需要进行页表的修复。因为硬件设备并不通过MMU,也谈不少用空空间地址的概念,所以需要物理空间连续的内存。而对纯软件部分来说,vmalloc()亦可,但vmalloc需要额外的页表开销,会引起TLB 抖动,所以一般用kmalloc. vmalloc仅在需要大块内存时才需要,如加载模块.3. get_free_pages(),page一级的内存分配,采用伙伴算法4. kmem_cache_cre 阅读全文

posted @ 2011-11-03 19:28 hackergodness 阅读(192) 评论(0) 推荐(0) 编辑