自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (7)
  • 收藏
  • 关注

原创 面试算法:利用链表层级打印二叉树节点

二叉树节点的变量有三种方法,分别是前序遍历,中序遍历,后续遍历。现在,要求我们实现算法,使得逐层将节点打印出来,例如开始先打印最高层,也就是节点5,然后打印第二层,也就是节点3, 7, 接着打印第三层,也即是节点1,4,6,8;最后打印最底层,也就是节点0, 2, 9.

2017-01-31 11:15:45 618

原创 内核开发:实现切换窗口后的键盘输入

我们实现了键盘的输入焦点切换,但尽管控制命令台激活后,如果我们敲击键盘,会发现字符输入的还是前头的Message box.这一节,我们要实现把键盘敲击的内容输入到被切换的窗口。

2017-01-30 10:45:00 827

原创 操作系统内核开发:使用Tab键进行窗口切换

我们使用操作系统的时候,一个必不可少的功能就是通过Tab间在不同的窗口中来回切换,这种便捷方式使得你不必要挪动鼠标去点击某个窗口,只要不停的按Tab键,直到你的目标窗口被激活为止,一旦窗口被Tab键激活后,对应的窗口会响应你在键盘的输入,我们本节的目的,是在系统中实现这个功能。

2017-01-26 09:59:46 792

原创 java开发C语言解释器:函数递归调用时的环境保护

函数调用时,参数的传递是通过堆栈实现的,也就是每次出现函数调用,系统会先设置好一个堆栈,然后把要传递的参数压入堆栈,函数执行完毕后,再将参数从堆栈中弹出。但是,我们解释器的实现是,所以变量在符号表中只有一份拷贝,因此递归调用时,子函数对自己局部变量的修改会同时影响到父函数的对应变量,这样就会导致运行时逻辑混乱,本节将致力于解决这个问题。

2017-01-24 10:55:50 681

原创 系统内核开发:实现命令控制台

操作系统有一个重要的应用,就是命令控制台,像Linux系统,命令控制台集合是使用系统的主要工具。本节,我们将为系统开发一个命令控制台,今后我们会为系统开发应用程序,并且不少程序将会通过控制台来运行。

2017-01-23 11:25:00 677

原创 系统内核开发:实现命令控制台

操作系统有一个重要的应用,就是命令控制台,像Linux系统,命令控制台集合是使用系统的主要工具。本节,我们将为系统开发一个命令控制台,今后我们会为系统开发应用程序,并且不少程序将会通过控制台来运行。

2017-01-23 11:24:47 698

原创 面试算法:双指针单向链表的自我复制

一种链表特点是,除了next指向下一个节点外,它还多了一个指针jump,这个指针指向队列中的某一个节点,这个节点可以是当前节点自己,也可以是队列中的其他节点。例如上图,节点0的jump指针指向了最后一个节点,而节点1的jump指针指向了它自己。这种链表有一个专门的名称,叫Posting List.

2017-01-21 10:28:33 1186

原创 java开发系统内核:实现进程优先级队列

我们把所有进程根据level分成三个队列,进程越重要,它对应的level值越低,这样,当进行进程调度时,进程调度器先查看level等于0的队列是否还有进程,有的话,只执行该队列的进程,如果该队列不止一个进程,那么每个进程根据他们的优先级获得相应的CPU时间

2017-01-19 11:06:25 699 1

原创 java实现C语言解释器:while 和 do while 循环的解释和执行

们继续锦上添花,为当前的解释器增加对循环while 和 do ... while的解释执行功能,完成这节后,我们的解释器开发将进入一个重大的里程碑,那就是,他将能解释执行用C语言编写的快速排序算法,进而也表明,我们开发的解释器已经达到了一个比较成熟的地步

2017-01-16 12:04:29 1222

原创 算法面试:单向链表节点的奇偶排序。

给定一个单项链表,要求实现一个算法,把链表分成两部分,前一部分全是下标为偶数的节点,后一部分全是下标为奇数的节点。不能分配新的内存空间,在操作队列时,不可更改节点内容,只能更改节点的next指针。

2017-01-14 11:17:35 3332 1

原创 java开发系统内核:实现进程优先级

我们有了进程调度,目前来看,所有进程一律平等。我们的调度算法是遍历每一个进程,然后给每一个进程一定的运行时间,然后再切换下一个进程。但实际运用上,进程间不会是平等的,有些进程承担着比较重要的工作,因此,它有理由获得更多的运行时间,例如内核进程,一些进程不是很重要,同理,它就不应该占用过度的CPU资源。本节,我们要引入进程优先级的功能,让优先级高的进程获得更多的运行机会。

2017-01-13 10:17:34 1033

原创 java开发系统内核:依靠多任务实现多窗口

为了让多任务的特性展示的更直观,本节,我们基于多任务的基础上,为系统实现多个窗口特效,每个窗口都运行于一个任务或进程。由于窗口基于各自不同的进程,因此窗口自身的变化更新不会影响到其他窗口。

2017-01-11 10:32:11 1143 1

原创 java开发C语言编译器:为C语言提供API调用

无需自己实现,直接可以调用的函数,我们都称为库函数,或是API, 本节,我们要为当前构建的虚拟机提供C语言库函数,我们要给解释器提供一种函数调用机制,这些函数无需程序自己实现,而是由我们的解释器提供的,C语言程序直接调用即可,这节,我们要实现的一个库函数就是printf

2017-01-10 10:41:58 1947

原创 面试算法:获取重合列表的第一个相交节点

给定两个单向链表,如果他们有重合的话,如何设计算法,快速获得链表重合时的第一个相交节点。

2017-01-09 11:52:49 404

原创 java开发系统内核:进程的挂起和恢复

有了进程的自动调度后,接下来的任务在于,如何将空闲进程挂起,空闲进程往往是那些没有具体任务需要处理的进程,因此,如果继续让其运行的话,那么必然会耗费宝贵的CPU资源,如果能让它先挂起,等到它需要执行具体任务时,再把它调度到前台,那才是一种合理的进程管理机制。

2017-01-05 10:11:47 1845

原创 java开发C语言编译器: return 语句的解释和执行

在C语言程序中,很多函数并不是执行全部语句后,才从最底部返回的,大多数情况下,当某些条件成立时就可以通过return 语句立即返回,而无需执行接下来的代码,本节,我们继续增强java开发的C语言解释器功能,使其能够处理return语句.

2017-01-03 09:51:51 983

一个java实现的简易编译器

这是一个用java实现的简易的编译器,他能将一个具有加法和乘法的算术表达式编译成类汇编语言,这是我博文对应的代码,具体请参看我的博文: http://blog.csdn.net/tyler_download/article/details/50668983 例如输入 1+2*3+4; end end是必须的,表示输入结束,然后程序输出: t0 = 1 t1 = 2 t2 = 3 t1 *= t2 t0 += t1 t1 = 4 t0 += t1

2016-02-18

一个android 文本比对app的实现代码

这是一个android版的beyond comparer, 它的功能是找出两个文本的最大共同子串,其算法思想是LCS, 但我利用Hirschberg 的动态规划算法将存储复杂度由O(n^2)改为O(n), 具体详情请参看我的博文: http://blog.csdn.net/tyler_download/article/details/49820515

2015-11-16

Android 4.4 App Development Essential

亚马逊上五星级的android开发入门书,它将android开发的概念,流程娓娓道来,详细讲解了开发环境的搭建,调试,并逐步讲解开发的各个知识点,并提供动手实践的实例和程序,极大地降低了学习曲线,是想进入android移动开发的绝佳入门资料

2014-11-21

空空如也

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

TA关注的人

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