![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Dragon.liu
这个作者很懒,什么都没留下…
展开
-
ArrayList与LinkedList的简单比较
ArrayList与LinkedList的简单比较 相同点 1. 可以保存重复的数据 2. 保存的数据都是有序的 3. 可以保存空对象 4. 都实现了List接口 5. 都是现成不安全的(在多线程下可能出现数据不安全的风险) 不同点 1. ArrayList是基于数组实现。在根据下标取得数据的时候使用的方式是数组寻址,性能高,而LInkedList是基于链表实现的,需要从链表的表头或者尾部不断的遍历(使用for循环),而且每次都要判断,所以效率比ArrayList低 2. ArrayList在插入数据的时候原创 2021-10-03 23:42:41 · 56 阅读 · 0 评论 -
ArrayList的部分原码实现
ArrayList原码实现 package arraylist; import java.util.Arrays; public class MyArrayList<E> { //初始化容量 private static final int DEFAULT_CAPACITY=10; //空数组实例(调用有参构造方法创建集合的时候使用来初始化) private static final Object[] EMPTY_ELETEMENTDATA={}; /原创 2021-10-03 23:02:17 · 60 阅读 · 0 评论 -
双链表的操作方法综合
双链表的操作 public class Doublelink<E> { public Node<E> first;//暂时用public方便测试 private Node<E> last; private int size; private class Node<E>{ private Node<E> prev; private E item; private Node原创 2021-10-02 19:18:22 · 62 阅读 · 0 评论 -
双链表的操作2:返回指定位置的节点数据
双链表的操作2:返回指定位置的节点数据 package shuanglianbiao; import org.omg.Messaging.SyncScopeHelper; public class Doublelink<E> { public Node<E> first;//暂时用public方便测试 private Node<E> last; private int size; private class Node<E>{原创 2021-10-02 16:30:34 · 359 阅读 · 0 评论 -
双链表的操作1
双链表的操作1 建立和输出 package shuanglianbiao; public class Doublelink<E> { public Node<E> first;//暂时用public方便测试 private Node<E> last; private int size; private class Node<E>{ private Node<E> prev; priv原创 2021-10-02 16:28:24 · 42 阅读 · 0 评论 -
链表相关操作4
链表相关操作4 1、根据索引删除 //内部类方法 public void removeNode(int index,Node<T> previousNode){ if (foot++==index){ previousNode.nextNode=this.nextNode; }else { this.nextNode.removeNode(index,this);原创 2021-10-01 19:25:57 · 46 阅读 · 0 评论 -
链表的操作3
链表的操作 1.修改指定索引结点的数据 修改节点数据的本质是根据索引查找对应的节点然后对该节点进行修改 //内部类方法 public boolean setNode(int index,T newdata){ if (foot++==index){ this.data=newdata; }else { if (this.nextNode==null){原创 2021-10-01 17:17:32 · 72 阅读 · 0 评论 -
链表的一些操作2
链表的一些操作2 package lianbiao; public class Link<T> { private Node<T> root;//链表的根节点 private int foot;//表示链表结点的索引 private int count;//对添加数据进行计数 private class Node<T>{ private T data; private Node nextNode;原创 2021-09-30 23:58:39 · 109 阅读 · 0 评论 -
链表的操作1
链表 1、结点的定义 每个结点除了可以保存数据之外还必须有对下一个结点的引用,结点就是数据的载体 package lianbiao; public class Node<T> { private T data; private Node nextNode; public Node() { } public Node(T data) { this.data = data; } public T getData() {原创 2021-09-30 17:04:26 · 66 阅读 · 0 评论 -
二叉树的相关操作
###二叉树 1、二叉树的建立 二叉树的结点添加,即为二叉树的建立 外部类为树,根节点,结点的个数 内部类(结点类,添加结点的方法(递归方法)) 左节点,右结点,父节点 package binarytree; public class BinaryTree { private Node root; private int count; public class Node{ private int data; private Node left;原创 2021-09-30 11:40:24 · 136 阅读 · 1 评论