上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页

栈->栈的基本定义

摘要: 定义: 栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表成为空栈。 示意图: 顺序栈的表示和实现 可以在初始化时分配一块连续的内存,base指向其起始地址, top指向栈顶;当入栈的时候,数据存放在top上,然后将top增 阅读全文
posted @ 2019-04-16 18:16 LiveWithACat 阅读(654) 评论(0) 推荐(0)

线性表->应用->一元多项式

摘要: 文字描述 在数学上,一个一元多项式可以按升幂写成如下形式。 它由n+1个系数唯一确定。因此,在计算机里,可以用一个线性表P来表示,P中每一项的指数i隐含在其系数pi的序号里。 但是在通常的应用中,多项式的次数可能很高且变化很大,使得顺序存储结构的最大长度很难确定。比如如下多项式,就要用一个长度为20 阅读全文
posted @ 2019-02-20 12:42 LiveWithACat 阅读(577) 评论(0) 推荐(0)

线性表->链式存储->双向链表

摘要: 文字描述 之前的链表(单链表、循环链表)的链式存储结构中只有一个指示直接后继的指针域。由此,从某个结点出发只能顺指针往后寻查其他结点。若要寻查结点的直接前驱,则需从表头指针出发。即单链表中,NextElem的执行时间为1,而PriorElem的执行时间为n。为了克服单链表这种缺点,可利用双向链表。 阅读全文
posted @ 2019-02-17 19:04 LiveWithACat 阅读(235) 评论(0) 推荐(0)

线性表->链式存储->循环链表

摘要: 文字描述 循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。由此,从表中任一结点出发均可找到表中其他结点。 示意图 算法分析 插入、删除、查找等同单链表。 代码实现 1 // 2 // Created by lady on 19-1-27. 3 / 阅读全文
posted @ 2019-02-17 18:48 LiveWithACat 阅读(296) 评论(0) 推荐(0)

线性表->链式存储->线形链表(单链表)

摘要: 文字描述: 为了表示前后两个数据元素的逻辑关系,对于每个数据元素,除了存储其本身的信息之外(数据域),还需存储一个指示其直接后继的信息(即直接后继的存储位置,指针域)。 示意图: 算法分析: 在单链表中插入和删除元素时,主要是改变指针的值,其时间复杂度为1。而顺序存储的话,其时间复杂度为n。 在单链 阅读全文
posted @ 2019-02-17 17:27 LiveWithACat 阅读(358) 评论(0) 推荐(0)

线性表->顺序存储

摘要: 文字描述: 用一组地址连续的存储单元依次存储线性表的数据元素,只要确定了存储线性表的起始位置,线性表中任一数据元素都可随机存取,所以线性表的顺序存储结构是一种随机存取的存储结构。 即是,线性表的顺序存储结构的特定是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置 阅读全文
posted @ 2019-02-17 16:37 LiveWithACat 阅读(1226) 评论(0) 推荐(0)

线性表(总结篇)

摘要: 线性表的基本定义: 一个线性表是n个数据元素的有限序列,在一个非空的线性表中,(1)存在唯一的一个被称为“第一个”的数据元素;(2)存在惟一的一个被称为“最后一个”的数据元素; (3)除第一个之外,其他的每一个数据元素均只有一个前驱;(4)除最后一个之外,其他的每一个数据元素均只有一个后继。 线性表 阅读全文
posted @ 2019-02-17 16:30 LiveWithACat 阅读(158) 评论(0) 推荐(0)

c->log技巧

摘要: 介绍: 在C代码里,有时会加入一些打印信息方便分析问题,可用如下代码替代打印函数,更加方便。 阅读全文
posted @ 2019-02-13 10:08 LiveWithACat 阅读(197) 评论(0) 推荐(1)

动态存储管理(小结篇)-待完善

摘要: 动态存储管理 假设在系统刚开工时, 整个内存区是一个“空闲块”(在编译程序中称为“堆”)。 下图a为依次给8个用户进行分配后的系统的内存状态。 下图b为一段时间后,有的用户运行结束,它所占用的内存区变成空闲块,这时整个内存区呈现出占用块和空闲块犬牙交错的状态。 假设又有新的用户进行系统请求分配内存, 阅读全文
posted @ 2019-01-11 15:02 LiveWithACat 阅读(206) 评论(0) 推荐(0)

图->最短路径->多源最短路径(弗洛伊德算法Floyd)

摘要: 文字描述 求每一对顶点间的最短路径,可以每次以一个顶点为源点,重复执行迪杰斯特拉算法n次。这样,便可求得每一对顶点之间的最短路径。总的执行时间为n^3。但是还有另外一种求每一对顶点间最短路径的方法,就是弗洛伊德(Floyd)算法,它的时间复杂度也为n^3,但是形式上更简单,其基本思想如下: 如果无法 阅读全文
posted @ 2019-01-06 18:05 LiveWithACat 阅读(425) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页