
数据结构与算法
Tong_Nan
这个作者很懒,什么都没留下…
展开
-
JAVA数据结构与算法(四)树
JAVA数据结构与算法(三)树定义树(Tree)是n(n≥0)个结点的有限集T,并且当n>0时满足下列条件:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可以划分为m(m>0)个互不相交的有限集T1、T2 、…、Tm,每个集Ti(1≤i≤m)均为树,且称为树T的子树(SubTree)。特别地,不含任何结点(即n=0)的树,称为空树。树的术语1.结点:包含...原创 2019-05-19 18:56:44 · 307 阅读 · 0 评论 -
JAVA数据结构与算法(一)单链表
JAVA数据结构与算法(一)单链表1.单链表链表是最基本的数据结构,其存储的你原理图如下图所示链表的增加操作链表的删除链表的插入:1、头插法:每次把新插入的节点当着头结点;2、尾插法:每次把新插入的节点放在尾部;3、指定位置插入法:每次在指定位置插入某个节点。链表的删除:删除指定位置上的某个节点链表的查询:1、根据节点位置查询该节点;2、根据节点查询节点存放的位置...原创 2019-05-12 15:21:38 · 295 阅读 · 0 评论 -
JAVA数据结构与算法(二)队列
JAVA数据结构与算法(二)队列队列是一种比较特殊的线性结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中最先插入的元素也将最先被删除,对应的最后插入的元素将最后被删除。因此队列又称为“先进先出”(FIFO—first in first out)的线性表,与栈(FILO-first in last...原创 2019-05-12 15:35:40 · 177 阅读 · 0 评论 -
JAVA数据结构与算法(三)栈
JAVA数据结构与算法(三)栈栈是一种只能在一端进行插入和删除操作的特殊线性表。其中,允许插入和删除的一端称为栈顶,另一端称为栈底。通常,将栈的插入操作称为入栈,删除操作称为出栈。入栈时元素总是放在栈底,而出栈的总是栈顶元素。因此,栈中元素采用的是“后进先出”的方式。创建一个栈public class MyStack <T> {private int top;private...原创 2019-05-12 15:41:16 · 173 阅读 · 0 评论 -
JAVA数据结构与算法(八)java实现红黑树
JAVA数据结构与算法(八)java实现红黑树红黑树的性质红黑树是一种自平衡二叉树,红黑树和AVL树一样都对插入时间、删除时间和查找时间提供了最好可能的最坏情况担保。红黑树需要满足的五条性质:性质一:节点是红色或者是黑色;在树里面的节点不是红色的就是黑色的,没有其他颜色。性质二:根节点是黑色;根节点总是黑色的。它不能为红。性质三:每个叶子节点是黑色。 [注意:这里叶子节点,是指为空...原创 2019-06-12 20:02:00 · 3315 阅读 · 1 评论 -
JAVA数据结构与算法(五)搜索二叉树(bst)的CURD操作
JAVA数据结构与算法(五)搜索二叉树(bst)的CURD操作它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。查找时,从根节点与要查的数对比,大则在右子树查找,小则在左子树查找添加时类似上面查找删除是考虑三种情况,1.如果是叶...原创 2019-06-01 17:22:56 · 198 阅读 · 0 评论 -
JAVA数据结构与算法(六)java实现图
JAVA数据结构与算法(六)java实现图图的定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合。无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示。有向图:若从顶点Vi到Vj的边是有方向的,则成这条边为有向边,也称为弧(Arc)。用有序对(Vi,Vj)标...原创 2019-06-06 21:35:34 · 605 阅读 · 0 评论 -
JAVA数据结构与算法(七)java实现AVL树
JAVA数据结构与算法(七)java实现AVL树1,AVL树又称平衡二叉树,它首先是一颗二叉查找树,但在二叉查找树中,某个结点的左右子树高度之差的绝对值可能会超过1,称之为不平衡。而在平衡二叉树中,任何结点的左右子树高度之差的绝对值会小于等于 1。2,为什么需要AVL树呢?在二叉查找树中最坏情况下查找某个元素的时间复杂度为O(n),而AVL树能保证查找操作的时间复杂度总为O(logn)。对于...原创 2019-06-10 20:29:40 · 317 阅读 · 0 评论 -
JAVA数据结构与算法(九)HashMap源码
JAVA数据结构与算法(九)HashMap源码HashMap概述HashMap是一种基于哈希表实现的Map,它通过键的hashCode来快速的存取元素HashMap允许插入null键和null值,允许多条记录的值为null,但只允许一条记录的键为nullHashMap不是线程安全的,在并发环境下,可能会引起死循环HashMap中的元素是无序的,无法保证遍历时的顺序是固定不变的Hash...原创 2019-06-16 16:07:28 · 203 阅读 · 0 评论