![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 56
go_____________ahead
一个正在学习的java菜鸟
展开
-
写一个简易的arraylist
arraylist是java中一个集合,它和linkedlist都为list子类为了学习list于是自己写了一个简单的arraylist因为arraylist的底层数组,所以和顺序表有几乎相同 package Array;public class MyArrayList<T> {private static final int DEFAULT_CAPACIT...原创 2018-11-22 16:06:07 · 219 阅读 · 0 评论 -
数据结构——————————————写avl树
这个树折磨了我两天,中间都不想写了,但是想想开始了,不写完好像缺点什么,所以就觉得还是写完吧写一个二叉树难点旋转麻烦点:获取其不平衡节点的父节点以及不平衡节点接下来写这个平衡二叉树avl就是一颗平衡二叉树什么是平衡二叉树呢?继续先百度一波定义:在AVL树中任何节点的两个子树的高度最大差为1。这便是一个平衡二叉树,它每个节点的左右子树最大差在2以内 下来这...原创 2018-12-10 12:26:45 · 140 阅读 · 0 评论 -
数据结构——————————————红黑树
红黑树和AVL树一样也是一颗平衡的二叉树先说一下规定:1.每个节点都为红色或者黑色2.根节点必须为黑色3.叶子节点必须是黑色的(就是null节点)4.红节点的父节点和孩子节点都不能为红节点5.每个节点起始到叶子节点任何路径的黑节点是相同的它虽然是一颗平衡树但是并不是绝对的平衡树,比如avl树规定每一节点的子树的深不超过差值1,不过这种平衡树花的代价太大,所以采用的情况很...转载 2018-12-21 16:49:34 · 139 阅读 · 0 评论 -
数据结构——————————————写一个二叉查找树(数据是存在一个一个结点中)
由于我对对象的比较并不熟悉,所以我写的这个二叉查找树只适合存interge类型首先先去百度一波二茬查找树的特性或者定义:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的节点。我们如何理解这四句话,首先我们先放一张二叉查找树的图这便是...原创 2018-11-28 12:16:04 · 154 阅读 · 0 评论 -
数据结构——————————————树以及它的遍历方式
最近学习树,就写写自己了解的树的特点,我这篇写的是二叉树树的定义:二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。(百度百科的二叉树树的定义) 左右孩子都在(a)这就是最简单的树,它每个结点和双向链表 的结点相似,只不过链表的前后指针和它上下结点相互指向。而树的结点它只有从父节...原创 2018-11-26 13:55:50 · 422 阅读 · 0 评论 -
算法题——————————————用一个数组实现3个栈
用一个数组实现3个栈实现3个栈,可以将数组分成栈1:3n+0栈2: 3n+1栈3: 3n+2代码:package Test;public class ThreeStack {Object[] stack;int s1,s2,s3;//每个栈的长度public ThreeStack(int index) { s1=0;s2=1;s3=2; stack=n...原创 2018-11-25 12:11:00 · 189 阅读 · 0 评论 -
用java语言写一个简单的栈和队列
一个栈栈其实相当于线性表,只是少了一些功能(个人理解)栈的特点:先进先出栈底层由链表或者数组实现,我个人认为链表更为简单(相对代码实现简单),但是很多人都应用了 数组所以我应用的也是数组如果是链表当你取数据读数据只需要将丢掉一个结点或者添加一个结点,也不用扩容要移动数据栈的具体属性和方法接下来是代码package Array;public class MyS...原创 2018-11-23 12:49:24 · 150 阅读 · 1 评论 -
算法题———————输入栈的入栈顺序和出栈顺序判断是否合理
思路:需要一个栈s入栈顺序a出栈顺序b1.先拿a的第一个元素入栈2.取b中第一元素与s栈顶层元素比较,相同出栈,在取b中下一个元素与栈顶元素比较3.不相同,则取a中下一个元素,入栈4.重复2.35.当a.b中元素都取完了之后,或者a中元素全部入栈,二此时b中获取的元素与s栈顶元素不同跳出循环6.返回s栈是否为空,为空符合,不为空不符合代码:packag...原创 2018-11-24 20:18:47 · 1241 阅读 · 0 评论 -
arraylist和linkedlist区别
一、arraylist和linkedlist区别1.arraylist和linkedlist都实现了list接口2.arraylist和linkedlist都是容器可以存储对象3.arraylist底层是数组,linkedlist的底层是链表4.arraylist查找方便,删除缓慢。linkedlist增删方便,查找缓慢。二、为什么arraylist查找方便增删慢,linked...原创 2018-11-24 16:23:19 · 239 阅读 · 0 评论 -
算法题——————————————输入一段java代码判断这段代码(){}[]使用是否标准
思路:需要的数据结构一个栈stack,输入字符串str,截取字符串s11.首先截取字符串的第一个s1,然后str赋值为余下字符串str.subString(1,dtr.length);2.判断s1是否为"(","{","[",是则入栈3.判断s1是否为")","}","]",a.是,判断栈顶元素是否为所对应的"(","{","原创 2018-11-25 16:52:10 · 223 阅读 · 0 评论 -
写一个简单的Linkedlist,实现增删改查
linkedlist和arraylist一样都是实现了list,只是它们底层不同,一个是数组一个是链表,就造就了它们的一些特性不同linkedlist增删快,查找慢。主要是因为链表查找要将链表遍历一边找到该数据输入。当要删除时,只需要将其结点的前后两个结点连接起来即可package Array;import java.util.NoSuchElementException;pub...原创 2018-11-22 18:19:17 · 1130 阅读 · 0 评论 -
数据结构————————————————java写一个2-3树(只有插入)
2-3树的特点:1.2-节点至少有一个数据项和两个节点,它小于它的右孩子数据大于左孩子数据2.3-节点必定包含两个数据S,L,它的左孩子的数据小于S,中孩子的数据大于S小于L,而右孩子大的数据于L3.叶子可以包含一个或者两个数据 2-节点 ...原创 2018-12-14 14:11:56 · 360 阅读 · 0 评论