数据结构与算法
露白123
这个作者很懒,什么都没留下…
展开
-
数据结构与算法---动态链表(2)链栈,双端链栈,单向循环链表
栈的链式存储结构—基于链表实现其原理和顺序栈是一样的双端链栈我们让左边的头指针直接连到右边的头指针所以单纯的链表就无法实现,我们要重新来写他的底层实现双端链栈同样是由结点组成的,所以也有结点内部类由上图我们可以看到双端链有自己的左结点,右结点,同样也有自己的size得到有效个数–分左右进行(总的个数等于左右两变有效元素之和)判空–分左右两边进行如上图,左边为空则表明他的下一跳...原创 2019-12-19 14:15:52 · 163 阅读 · 0 评论 -
数据结构与算法---动态链表(1)LinkedList
链表的定义我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。这两部分信息组成数据元素ai的存储映像,称为结点。因为链表中的每一个结点只包含一个指针域,所以叫做单链表头结点与头指针头结点是指链表中的第一个节点,有真实头结点和虚拟头结点之分真实头结点:其第一个结点用于存储数据虚拟头结点:其第一个节点不许存储数据头指针:仅仅是一个引用变量,存储头结点地址的指针而已...原创 2019-12-16 17:12:16 · 182 阅读 · 0 评论 -
数据结构与算法---动态数组(3)顺序队列ArrayQueue、循环队列ArrayQueueLoop
队列的顺序存储结构队列的定义:队列是只允许在一端经行插入操作,而在另一端进行删除操作的线性表队列是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端称为队头队列的接口定义接口的实现 –基于ArrayList实现但是顺序队列存在一个问题,元素进队时时间复杂度为0(1),元素出队时时间复杂度为0(n)循环队列的顺序存储结构优化第一步:让队头指针与队尾指针一样随...原创 2019-12-12 16:59:52 · 301 阅读 · 0 评论 -
数据结构与算法---动态数组(2)顺序栈ArrayStack、双端栈ArrayStackDoubleEnd
栈的顺序存储结构a.栈的定义:栈是限定仅在表尾进行插入和删除操作的线性表我们把允许插入和删除的一端称为栈顶,另一端称为栈底栈又称为后进先出的线性表定义中说的时在线性表的表尾进行插入和删除,这里表尾是栈顶栈的插入操作,叫做进栈,也称压栈,入栈栈的删除操作,叫做出栈,也称弹栈b.栈的接口定义成员变量,成员函数我们可以将顺序表看成时栈的一个成员变量c.接口的实现接口的实现我们都可...原创 2019-12-11 10:27:23 · 240 阅读 · 1 评论 -
数据结构与算法---动态数组(1)数组列表ArrayList
Java内置数组的特点数组的长度一旦确定则不可改变数组只能存储同一类型的数据数组中每个存储空间大小一致且地址连续数组提供角标的方式访问元素动态数组的封装可以把数组的 相关属性和相关行为封装在类中线性表的顺序存储结构线性表的定义:零个或多个数据元素的有限序列线性表的第一个元素无前驱有后继,最后一个元素有前驱无后继,其他元素均有前驱和后继线性表的接口需要支持泛型E,表示该线性表中...原创 2019-12-10 15:51:47 · 160 阅读 · 0 评论 -
数据结构与算法--概述
什么是数据?但凡能被计算机存储,识别和计算的东西都叫做数据(二进制)。什么是结构?数据与数据之间一种或多种特定的关系。什么是数据结构?数据结构 = 数据+数据之间的关系。数据结构的逻辑结构是指数据元素之间的相互关系,是我们想象出来的,并没有实质性的将其存储在计算机中集合结构:集合结构中的数据元素除了属于同一个集合外,他们之间没有其它关系线性结构:线性结构中的数据元素之间是一对一...原创 2019-12-07 21:40:32 · 184 阅读 · 0 评论