![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 66
小嵌_
这个作者很懒,什么都没留下…
展开
-
Java实现广度优先搜索
从出发节点开始访问,然后去访问该节点的所有相邻节点,访问完该节点的所有相邻节点后,以相邻节点中的第一个节点为起点,继续去访问其所有相邻节点,反复持续该过程直到图中所有节点均被访问过退出。和广度优先搜索一样,我们将要访问的节点称为头节点,相邻节点称为表节点;头节点中存储数据和第一个表节点,表节点中存储头节点的下标和头节点的下一个相邻节点;头节点使用顺序(链表)存储,表节点使用链表存储。,注意:广度优先搜索的顺序也不是唯一的,和深度优先搜索一样,取决于访问起点和表节点的顺序。再main方法中测试。原创 2022-11-20 21:18:03 · 1660 阅读 · 0 评论 -
Java实现深度优先搜索
图的遍历就是访问图中的每个节点并且每个节点只访问一次。但图中有那么多节点,要如何进行访问就是一个问题,所以我们需要有特定的策略来进行访问这些节点。我们将要访问的节点成为头节点,相邻节点称为表节点;头节点中存储数据和第一个表节点,表节点中存储头节点的下标和头节点的下一个相邻节点;从初始节点开始出发访问,访问该节点的第一个相邻节点,然后以该相邻节点为起点,继续访问其相邻节点,反复持续该过程直到图中所有节点已全部被访问;,注意:深度优先搜索的顺序不是唯一的,这取决于访问起点和表节点的顺序。在main方法中测试。原创 2022-11-19 22:33:09 · 2144 阅读 · 0 评论 -
Java实现二叉树
Java实现二叉树的构建与二叉树遍历原创 2022-11-17 09:20:12 · 1755 阅读 · 0 评论 -
Java实现队列
循环队列是用一组连续的存储单元来存储队列中的元素,同时设置变量 front 和 rear,front表示队头元素的下标,rear表示队尾元素后一个元素的下标。链队列是用一组任意的存储单元来存储队列中的元素,同时设置变量 front 和 rear,front指向队列中的第一个节点,rear指向队列的最后一个节点。定义一个 CircleArrayQueue类,一个 CircleArrayQueue对象就代表一个队列。同时在该类中定义关于队列的基本操作方法。队列是只允许在队尾插入元素,队头删除元素的线性表;原创 2022-11-13 19:26:18 · 1276 阅读 · 0 评论 -
Java实现栈
顺序栈使用一组地址连续的内存单元来存储栈中的元素,同时设置一个栈顶变量top,用来标识栈顶元素。链栈是用一组任意的存储单元来存储栈中的元素,链栈中的指针从栈顶指向栈底,同时设置一个栈顶变量指向栈中的第一个元素(栈顶元素)。定义一个LinkedStack类,每一个LinkedStack对象,就代表一个链栈,并在该类中定义关于栈的基本操作方法。定义一个ArrayStack类,每一个ArrayStack对象就代表一个栈,并在该类中定义关于顺序栈的基本操作方法。栈的实现方式有两种,分别顺序栈和链栈。原创 2022-11-12 22:13:25 · 1563 阅读 · 1 评论 -
Java实现单链表
主要原因就是我们在使用数组的时候,数组在内存中开辟的是一段连续的存储单元,但如果此时我们的电脑内存不够的情况下,我们就无法使用数组来存放数据了;此时,我们就可以使用链表来存储数据,因为内存中很多时候都会存在分散的存储单元,单链表就是用一组任意的存储单元来存放线性表中的数据,链表中的数据是以节点来显示的,节点主要由数据域和指针域组成。数据域用于存放数据,指针域由于存放指向下一个节点的地址。这里需要知道,单链表一般都会单独创建一个节点,类中添加关于链表的相关操作。定义一个类来维护链表。在main方法中测试。原创 2022-11-09 15:01:55 · 538 阅读 · 0 评论