随笔分类 -  数据结构

摘要:在操作系统中,调度程序必须决定在什么时候运行哪个进程。一般来说,短的作业是需要尽可能快地完成,也就是说,短的作业应该拥有优先权。这种特殊的应用将由一种特殊的队列来完成,这种数据结构叫做优先队列,属于计算机科学中最讲究的一种。一、最基本的两种操作  优先队列具备的最基本的两种操作,是插入和删除最小者。插入操作相当于入列,而删除操作相当于出队。只是这里有一些地方是不同的,不像之前出队和入队操作那么简单... 阅读全文
posted @ 2010-10-30 16:18 Linjian 阅读(1052) 评论(1) 推荐(0)
摘要:把后缀表达式转变成表达树,然后再后序遍历表达数,把后序遍历后的结果输出。这里,要配合两种数据结构,第一就是栈,第二就是二叉树。所以,我把这些不同的数据结构分别放进不同的.c文件作为不同的模块,还有一个模块是核心模块,就是把后缀表达式转变成表达树的功能。最后,main.c里面存放的只是测试代码。栈的头文件:stack.h栈的实现函数:stack.c二叉树的头文件:btree.h二叉树实现文件:btr... 阅读全文
posted @ 2010-10-23 17:20 Linjian 阅读(489) 评论(0) 推荐(0)
摘要:循环队列的数组实现:queue.hqueue.cqueue.c 阅读全文
posted @ 2010-10-23 13:17 Linjian 阅读(953) 评论(0) 推荐(1)
摘要:国庆后工作很忙,没什么时间看自己的书了。晚上看数据结构,写一个中缀表达式转换成后缀再进行计算的小程序。中缀转换成后缀的核心代码我没花心思去简化逻辑了,该睡觉了。其中,栈是用数组来实现的。栈的头文件说明:stack.h栈的实现代码:[代码]main.c: 中缀转换为后缀,再进行计算的代码:[代码]测试结果:代码 阅读全文
posted @ 2010-10-23 01:14 Linjian 阅读(646) 评论(0) 推荐(0)
摘要:一直以来我有个错误的观点,就是数据结构和算法只要学习那些平时工作最常用的就可以了。这是典型的找借口行为。所以我打算开始认真复习好数据结构和算法,我目前熟悉的算法其实只有链表和动态数组,真是可悲。  Mark Allen Weiss那本《数据结构与算法分析》第二章,求最大子序列:-2 11 -4 13 -5 -2 最大子序列为20(11到13)。  题目不难,我也还没有看答案。目前我有个简单的想法:... 阅读全文
posted @ 2010-09-15 00:04 Linjian 阅读(262) 评论(0) 推荐(0)
摘要:最近在学习李先静老师的那本《系统程序员成长计划》,照着例子写了一个循环队列,利用单向循环链表实现,权当练习。1. 单向循环链表  我这里设计的只是一个单向循环链表,当然也可以设计为双向链表,效率应该也高点。只提供了需要用到的、最基本的接口给循环队列调用。要保持文头件的简洁,该给的都要给,不该让用户知道的一概不要加进去,否则会造成头文件组织混乱,给用户造成不必要的麻烦。链表的接口如下:代码  其中,... 阅读全文
posted @ 2010-06-19 17:21 Linjian 阅读(552) 评论(0) 推荐(0)