2012年6月14日
摘要: 队列:顺序存储的队列为了充分利用空间,可以进行循环利用,在笔记上看一下,不写了。队列先进先出,也是一种存储技术,利用队列来实现球钟。球钟描述:球钟是一个利用球的移动来记录时间的简单装置。它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器。若分钟指示器中有2个球,五分钟指示器中有6个球,小时指示器中有5个球,则时间为5:32。工作原理:每过一分钟,球钟就会从球队列的队首取出一个球放入分钟指示器,分钟指示器最多可容纳4个球。当放入第五个球时,在分钟指示器的4个球就会按照他们被放入时的相反顺序加入球队列的队尾。而第五个球就会进入五分钟指示器。按此类推,五分钟指示器最多可放11个球 阅读全文
posted @ 2012-06-14 20:57 孟浩依然 阅读(1350) 评论(0) 推荐(0) 编辑
  2012年6月13日
摘要: 学习的捷径:多写代码栈:栈是限制在一端进行插入操作和删除操作的线性表,额,又是线性表,那就是说又可以有两种存储方式:顺序栈,链式栈。允许进行操作的一端称为“栈顶”,另一端称为“栈底”。特点:先进先出。所谓的栈和队列,其实是一种技术,有时候需要特殊的存储方式,然后在必要的时候还原该元素,就会利用到栈或者队列,例如在ARM操作的一些裸机代码中,需要保持状态寄存器中的值,根据需要可以利用栈或者队列来存储,用起来很方便安全,所以在涉及到存储数据之类的操作时候,要想到这两个技术。基本运算: 创建空栈:createstack();判断是否空栈 isempty(S);判断满栈isfull(S);进栈:pus 阅读全文
posted @ 2012-06-13 21:10 孟浩依然 阅读(1240) 评论(0) 推荐(0) 编辑
  2012年6月12日
摘要: 循环链表,最后的尾指针指到头结点上,双向循环链表就是再加个pre指针。约瑟夫环的问题:设编号分别为:1,2,3,...n的n个人围坐在一圈。约定序号为k(1<=k<=n)的人从1开始计数,数m的那个人出列,他的下一位又开始从1开始计数,数到m的那个人又出列,以此类推,直到所有的人都出列。例如:设 n = 8,k= 3 , m = 4时,出列序列为:6 2 7 4 3 5 1 8算法思路:用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个节点的单循环链表,然后从第k结点起从1计数,记到m时,对应的结点从链表中删除;然后再从被删除结点的下一个结点起又从1开始计数... 阅读全文
posted @ 2012-06-12 22:22 孟浩依然 阅读(372) 评论(1) 推荐(0) 编辑
摘要: 学习总结:linux内核用到很多数据结构的知识,虽然linux是C语言编写,但是里面众多内容是面向对象的思想。所以数据结构的知识很基础,很重要。数据结构指的是数据的逻辑结构和存储结构及其操作:数据的逻辑结构 线性结构 :1.线性表 2.栈 3.队列 非线性结构 :1.顺序存储 2.图形结构数据的存储结构 顺序存储 链式存储数据的运算:检索、排序、插入、删除、修改等先自己写个线性表的操作。以后留着自己看看。顺序存储结构:(其实函数的返回值一定要判断,那么就比较完美啦,linux内核中的函数一般都有返回值,一般的话错误返回-1,正确的如果只是判断的话返回0,所以我觉得自己定... 阅读全文
posted @ 2012-06-12 19:14 孟浩依然 阅读(586) 评论(0) 推荐(0) 编辑