Java实现
离殇丶
开始自己的前端工作生涯,冲冲冲!
展开
-
二叉树(BinaryTree)的Java详细实现
关于二叉树的基本概念:二叉树基本概念二叉树实现的方法: * isEmpty():判断树是否为空。 * clear():清空二叉树。 * add(BTNode, Type):向指定节点添加指定的孩子。 * height():计算二叉树的高度。 * size():计算二叉树的大小。 * findNode():查找包含指定数据的节点是否存在。 * findParent():查找包含指...原创 2019-02-07 19:06:20 · 1796 阅读 · 0 评论 -
租用游艇问题——Java实现
1. 问题描述 长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1£i<j£n。试设计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。2.编程任务 出租站i到游艇出租站j之间的租金为r(i,j),1≤i<j≤n,编程计算从游艇...原创 2019-04-10 22:42:46 · 2902 阅读 · 2 评论 -
中序线索二叉树(ThreadBinaryTree)——基本概念及Java实现
关于二叉树的基本概念,见blog:二叉树基本概念1. 为什么要使用线索二叉树 普通二叉树有很多浪费的空间,比如叶节点的左右孩子的引用都是空的。我们可以利用起这些浪费的空间,来帮助我们实现中序遍历。我们使引用按顺序遍历后继节点,这个引用就称为线索(thread)。2. 线索二叉树的数据结构 为了区分左右孩子和前后线索,我们需要为左右孩子加一个布尔值作为标记。 leftC...原创 2019-02-26 12:49:09 · 708 阅读 · 0 评论 -
栈(Stack)的Java实现
1.什么是栈 栈是线性表的一种特殊表现形式,与队列的“先进先出”原则不同,栈的处理原则是“后进先出(Last in First out, LIFO)”。 过程理解:①向只有一个门的仓库存取货物的过程(后入库的货物必须先取出);②叠罗汉的过程(最后叠上的罗汉必须先取下)。2.栈的基本操作 入栈(push):将数据保存到栈顶。入栈时,让栈顶索引移动到栈顶元素的位置即可。 出栈(...原创 2019-01-30 20:18:20 · 623 阅读 · 0 评论 -
队列实现系列(二)——队列的链表实现(Java版)
不多哔哔,直接上代码,多于的话请看队列实现系列(一)——队列的数组实现(Java版) 链表实现队列时,不需要考虑ElementOutOfBoundary问题,因此不需要做成循环队列。Before:这里实现时,使用的链表不是Java自带的链表,是我自己写的链表,代码见:链表实现系列(一)——简单链表Java实现下面是链式队列实现代码(LinkedListQueue)/**...原创 2019-01-30 20:08:57 · 257 阅读 · 0 评论 -
队列实现系列(一)——队列的数组实现(Java版)
队列的原理见博客:队列(queue)原理使用数组来实现队列时,如果用一般的方式实现,还是比较简单的。一般队列和循环队列的实现,只是在个别地方会有不同,我在代码里已经注释出,根据自己需要修改即可。实现的操作:入队 出队 获取队首元素 获取队列长度辅助操作:判断队列是否为空; 判断队列是否满; 清空队列。下面是数组循环队列的实现代码(ArrayQueue)/** ...原创 2019-01-30 19:41:33 · 676 阅读 · 0 评论 -
链表实现系列(二)——双向链表Java实现
双向链表原理见博客:数据结构 | 双向链表简单实现及图示(注:我采用的是范式实现,如需实现具体链表,只需将Type改为具体类型即可。)实现的操作包括:在头节点之前插入节点; 在尾节点之后插入节点; 删除包含指定数据的节点; 删除尾节点; 查找包含指定数据的节点; 获取链表的长度;辅助操作包括:清空链表; 判断链表是否为空。下面是双向链表节点的代码(DoubleNod...原创 2019-01-30 19:05:57 · 272 阅读 · 0 评论 -
链表实现系列(一)——简单链表Java实现
简单链表的原理在这里就不赘述了,推荐一篇比较不错的博客:链表原理需要实现的操作包括:在头节点之前插入节点; 在尾节点之后插入节点; 删除包含指定数据的节点; 删除尾节点; 查找包含指定数据的节点; 获取链表的长度;辅助操作包括:清空链表; 判断链表是否为空。下面是简单链表的实现/** * 注意:该链表实现不适合用于保存有重复元素的集合 */public c...原创 2019-01-30 18:54:37 · 205 阅读 · 0 评论 -
顺序表(SeqList) Java实现
实现的操作包括:向顺序表末尾添加数据 ( addData( Data)); 向顺序表指定位置添加数据( insertDataByLoc( Location)); 删除顺序表中指定的数据( deleteDataByData( Data)); 删除顺序表中指定位置的数据( deleteDataByLoc( Location)); 查找指定位置的数据( findDataByLoc( Loca...原创 2019-01-30 18:43:26 · 2610 阅读 · 0 评论 -
分治法之——两个已排序数组的中位数问题——Java实现
1. 问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数。找出X和Y的2n个数的中位数,如果中位数是两个,则取较小的一个。2. 编程任务 利用分治策略试设计一个O (log n)时间的算法求出这2n个数的中位数。3. 问题分析 首先,问题可以分为两类情况:① 其中一个数组的数都不比另一个小(记为X≥Y);② 两个...原创 2019-04-10 22:51:48 · 1499 阅读 · 0 评论