![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
/*chen*/
这个作者很懒,什么都没留下…
展开
-
0.数据结构与算法概述
数据结构概述按照分类角度的不同,数据结构包括逻辑结构和物理结构。逻辑结构指的是数据对象中数据元素之间的关系,有以下四种:集合 结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构 结构中的数据元素之间是一对一的关系。 树型结构 结构中的数据元素之间存在一对多的多层关系。 图状结构或网状结构 结构中的数据元素之间是多对多的关系。...原创 2019-01-14 17:21:38 · 235 阅读 · 0 评论 -
2.2线性表的链式存储——循环链表(手工实现)
循环链表将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)单链表解决了一个很麻烦的问题就是:从链表当中的某一结点出发,遍历整个链表的问题循环链表和单链表在实现上的主要区别在于如何判断是否到达链表结尾:单链表中:while(temp.next!=null){...原创 2019-02-18 08:29:06 · 200 阅读 · 0 评论 -
2.1线性表的链式存储——单链表(手工实现)
为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息(即直接后继的存储位置)。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称作指针或链。这两部分信息组成数据元素ai的存储映像,称为结点(Node)n个结点链接在一起即为线性表的链式存储结构。单链表因为...原创 2019-01-18 10:22:06 · 167 阅读 · 0 评论 -
1线性表的顺序存储——数组(手工实现)
线性表:零个或多个数据元素的有限序列线性表是逻辑结构,根据其物理结构的不同分为顺序结构(数组)和链式存储结构(链表)线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素手写数组类结构图arraylist实现demopackage com.company.datastructure;public class MyArrayList <E...原创 2019-01-15 16:23:14 · 371 阅读 · 0 评论 -
5.0树形结构和二叉树基本性质
树树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:(1)有且仅有一个特等的称为根(Root)的结点; (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)结点分类 树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的...原创 2019-02-25 20:19:24 · 348 阅读 · 0 评论 -
4.线性表之队列(手工实现)
队列队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。同样,作为一种特殊的线性表,队列也有顺序存储结构和链式存储结构两种类型。队列顺序存储的不足:假设一个队列有n个元素,则顺序存储的队列需要建立一个大于n的数组,并把队列所...原创 2019-02-25 16:20:10 · 262 阅读 · 0 评论 -
3.线性表之栈(手工实现)
栈栈(Stack)是限定仅在表尾进行插入和删除的线性表我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为是后进先出(Last In First Out)的线性表,简称LIFO结构。理解栈的时候要注意:首先它是一个线性表,即栈元素具有线性关系(前驱后继)关系。只不过它是一种特殊的线性表而已。定义中说是在线性表的表尾进行...原创 2019-02-22 10:13:20 · 231 阅读 · 0 评论 -
2.3线性表的链式存储——双向链表(手工实现)
通过单链表可以看到,有了next指针,使得我们在查找下一节点的时间复杂度变为O(1),但是如果想要查找上一个结点,则需要重新从头开始遍历,最坏的时间复杂度变为O(n)。双向链表提供了这种能力,即允许向前遍历,也允许向后遍历。实现这种特性的关键在于每个链结点既有下一个链结点的引用,也有上一个链结点的引用。双向链表双向链表是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。 双向...原创 2019-02-20 20:30:21 · 161 阅读 · 0 评论