- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 二叉树层序遍历(Java实现)
层序遍历层序遍历,就是从根节点(第一层)开始,依次向下,获取每一层结点的值。层序遍历结果为EBGADFHC实现步骤1.创建队列2.使用循环从队列中弹出一个结点2.1获取当前结点的key2.2如果当前结点的左子结点不为空,则把左子结点放入队列中 2.3如果当前结点的右子结点不为空,则把右子结点放入队列中 //层序遍历 public Queue<Key> layerErgodic(){ ...
2022-03-31 10:22:23
2063
原创 Java二叉查找树遍历(前序遍历,中序遍历,后序遍历)
针对树这一数据结构的遍历问题主要有四种,前序遍历、中序遍历、后序遍历、层序遍历,我们主要说明一下二叉树前序、中序、后序的递归方式代码模板。基本思想前序遍历:根结点 —> 左子树 —> 右子树中序遍历:左子树—> 根结点 —> 右子树后序遍历:左子树 —> 右子树 —> 根结点前序遍历 //前序遍历 //获取整个树中所有的键 public Queue<Key> preErgodic(){ Queue&l
2022-03-30 22:53:42
2520
4
原创 Java二叉查找树的创建(插入,查找,删除)
二叉查找树二叉查找树(Binary Search Tree),或者是一颗空树,或者是具有下列性质的二叉树:1、若它的左子树不空,则其左子树上的所有结点的值均小于它根结点的值;2、若它的右子树不空,则其右子树上的所有结点的值均大于它根结点的值;3、它的左、右子树也分别为二叉查找树。插入操作二叉树查找树b插入操作x的过程如下:1、若b是空树,则直接将插入的结点作为根结点插入。2、x等于b的根结点的数据的值,则直接返回,否则。3、若x小于b的根结点的数据的值,则将x要插入的结点
2022-03-30 13:14:53
787
原创 Java符号表和有序符号表的概念及实现
基本概念最主要的目的就是将一个键和一个值联系起来。定义:符号表是一种存储键值对的数据结构,支持插入(put)和查找(get)操作,即给定建得到相应的值。每个键只对应一个值 向符号表中插入键值对,如果已存在就会替换原有的值符号表API设计 采用链表实现 结点类 符号表 代码实现package cn.itcast.algorithm.symbol;public class SymbolTable<key,value>...
2022-03-28 13:45:23
922
原创 Java数据结构之(Queue)队列的实现
1、队列的定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队头(first):允许删除的一端,又称队首。队尾(Rearlsat:允许插入的一端。空队列:不包含任何元素的空表。2、队列的常见基本操作(1)isempty(): 如果队列为空返回true,否则返回false;(2)size(): 返回队列内元素的大小;(3)enqu
2022-03-28 11:47:01
2600
原创 Java基于链表的栈的实现
1、什么是栈栈(Stack)是一种线性存储结构,它具有如下特点:(1)栈中的数据元素遵守”先进后出”(First In Last Out)的原则,简称FILO结构。(2)限定只能在栈顶进行插入和删除操作。2、栈的基本操作栈主要有以下几种基本操作:(1)empty(): 如果栈为空返回true,否则返回false;(2)size(): 返回栈内元素的大小;(3)push(): 向栈内压入一个成员;(4)pop(): 从栈顶弹出一个成员;3、具体代码(我们使用链表来完成基本操作,并且使
2022-03-26 14:37:15
2123
原创 Java循环链表实现约瑟夫环
问题描述约瑟夫环问题起源于一个犹太故事。约瑟夫环问题的大意如下罗马人攻占了桥塔帕特,41个人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家约瑟夫和他的一个朋友。剩余的39个人为了表示不向罗马人屈服,决定集体自杀。大家决定了一个自杀方案,所有这41个人围成一个圆圈,由第1个人开始顺时针报数,每报数为3的人就立刻自杀,然后再由下一个人继续报数,仍然是每报数为3的人就立刻自杀……,直到所有人都自杀身亡为止。约瑟夫和他的朋友并不想自杀,于是约瑟夫想到了一个计策,他将朋友与自己安排在第16个与第31个
2022-03-26 13:17:41
1312
原创 Java快慢指针应用(中间值,是否有环,环入口)
目录中间值中间值代码判断是否有环判断是否有环代码环链表入口环链表入口代码完整代码测试结果单链表-快慢指针(中间值,是否有环,环入口)快慢指针指的是定义两个指针,这两个指针的移动速度一块一慢,以此来制造出自己想要的差值,这个差值可以让我们找到链表上相应的结点。一般情况下,快指针的移动步长为慢指针的两倍。中间值利用快慢指针,我们把一个链表看成一个跑道,假设a的速度是b的两倍,那么当a跑完全程后,b刚好跑一半,以此来达到找到中间节点的目的。如下图,最开始,s...
2022-03-24 21:26:48
196
原创 Java之链表的反转
主要使用递归的思想完成完成反转,递归反转其实就是从原链表的第一个存数据的结点开始,依次递归调用反转每一个结点,直到把最后一个结点反转完毕,整个链表就反转完毕。
2022-03-24 16:53:45
5315
3
原创 Java使用Comparable接口实现六大排序算法
Java中使用接口进行排序,冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序
2022-03-23 11:26:45
1762
1
Web期末结课大作业 javascript+html+css
2022-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人