随笔 - 478
文章 - 0
评论 - 31
阅读 -
57万
随笔分类 - 数据结构
树与二叉树
摘要:一,基本的概念 节点:就是图中的1,2,3,4,5,6,7,8 节点的度:一个节点的孩子节点数。例,节点1的度为2,节点3的度为1,节点,7的度为0 树的度:他的节点的度数最高的度数。例,上图中,节点度数为2,则树的度为2. 叶子节点:没有孩子节点的节点。例如上图的4,5,7,8 分支节点:有孩子节
阅读全文
广义表
摘要:1,什么是广义表? 广义表是由n个表元素组成的有限序列,是线性表的推广。 通常使用递归的形式进行定义,记做:LS=(a0,a1,...,an) 注: 其中LS是表名,ai是表元素,可以是表(称作子表),也可以是数据元素(成为原子)。其中n是广义表的长度(也就是最外层包含的元素个数),n=0的广义表是
阅读全文
队列与栈
摘要:1,队列:先进先出 比如: 入队顺序:12345 出队顺序:12345 2,栈:先进后出 比如: 入队顺序:12345 出队顺序:54321 3,循环队列【队头队尾相连】 队空的条件:head=tail 在队空的时候,head=tail,当存入一个数时,尾指针就向后移一格,所以当在零号位置存一个数据
阅读全文
顺序存储与链式存储的差异
摘要:这篇文章主要介绍顺序存储与链式存储的差异,主要是从两个大的维度和几个小的方面进行比较。 一,从空间性能角度 (1)由下表可以看出顺序存储的存储密度是1(100%)。什么意思呢?就是开辟一段连续的空间,用来存顺序表,这一段空间所有的位置都用来存储我们需要的数据信息,没有空间的浪费。所以利用率达到了10
阅读全文
java实现循环链表的增删功能
摘要:java实现循环链表的增删功能,完整代码 分段解读, 1,声明节点类【包括节点名称,指针】 2,创建节点 3,设置指针 【这里不同于单链表的地方就是要给尾节点设置指向头结点的指针】 3,循环遍历链表 注意:结束的条件不同于单链表的地方, 在单链表中结束条件是nextNode为空, 然而在这里,尾节点
阅读全文
线性表
摘要:1,线性表是数据结构的线性表现 2,线性表的两种表现方式:顺序表,链表 3,顺序表:开辟连续的空间,顺序存储 4,链表:每个存储单元包括存数据的地方,存指针的地方。离散的空间通过指针连接在一起。 5,链表:单链表,循环链表,双向链表 6,单链表:只有一套指针,指针单向 7,循环链表:把尾元素的指针指
阅读全文
JAVA实现双向链表的增删功能
摘要:JAVA实现双向链表的增删功能,完整代码 1,构造node节点,需要两个指针,一个正向存储下一个元素的位置,一个反向存储下一个元素的位置 参数说明: name:用于存储node自身的信息 nextNode:用于存储正向指针 nextNodeF:用于存储反向指针 2,创建节点,设置指针连接节点 正向指
阅读全文
数据结构
摘要:1,什么是数据结构? 计算机存储组织数据的方式,选择不同的数据结构,效率会有很大的差别。 比如说数组的行存储和列存储在既定的处理的机制下,会有很大的性能方面的差异 2,数据的逻辑结构。 数据结构在逻辑层面分为线性结构,非线性结构 线性结构又分为树,图 树:没有环路 图:可能存在环路 图包括树,树包括
阅读全文
稀疏矩阵某个元素对应一维数组的下标
摘要:稀疏矩阵:矩阵中大量元素都是零 存储系数矩阵通常只存上三角或下三角 另一半的信息由已知信息推断 一,上三角a[4][4] 上三角对应的以为数组的下标:(2n-i+1)*i/2+j 二,下三角 上三角对应的以为数组的下标:(i+1)*i/2+j
阅读全文
数组--存储地址的计算
摘要:一维数组存储地址的计算 假设数组的首位置是:a 每个元素所占空间为:len 则,可以推断出a[i]的地址是:a+i*len 二维数组按行存储a[3][5] 假设数组的首位置是:a 每个元素所占空间为:len 则,可以推断出a[i]i[j]的地址是:a+i*n*len+j*len 二维数组按列存储 假
阅读全文
java实现单链表的增删功能
摘要:JAVA 实现单链表的增删功能 单链表添加节点: S1:创建新节点(node_add) S2:新节点的next指针指向要插入位置上一个节点(node2)的指针指向的节点 【node2.5 >node2.nextnode()】 S3:将要插入位置上一个节点(node2)的指针指向新的节点 【node2
阅读全文