数据结构
kurer
这个作者很懒,什么都没留下…
展开
-
链表
介绍 数据存储在节点中,与数组相比,是真正的动态,不需要考虑固定容量的问题;但是也因此使其不能随机访问。 链表类 创建一个链表类LinkList,在该类中创建一个私有类Node,该类中有两个公有属性e和指向下一个节点的next。 public class LinkedList<E> { private Node head: private int size; ...原创 2019-03-04 23:17:03 · 354 阅读 · 0 评论 -
重写数组类
目录int类型数组修改为泛型 int类型数组 public class Main { public static void main(String[] args) { Array score=new Array(10); for(int i=0;i<8;i++){ score.addLast(i); } ...原创 2019-02-25 20:33:24 · 249 阅读 · 0 评论 -
重写数组(2)——动态数组
目录增加数组大小减小数组大小 增加数组大小 前面当我们向数组中添加元素时,如果index==size,表示数组已满。 if (size == data.length) { throw new IllegalArgumentException(&amp;amp;quot;Add is fail.Array is full&amp;amp;quot;); } 现在可以考虑这样做,依然判断插入位置是否合法,但是当size等于数组长度时,自动为数...原创 2019-02-25 21:52:15 · 442 阅读 · 0 评论 -
栈和队列
栈 自定义栈的实现,我们复用前面写的动态数组类。先写一个栈的接口,接口内需要的方法分别是:进栈、出栈、栈顶元素、栈的长度、栈是否为空。 public interface Stack&amp;lt;T&amp;gt; { void push(T e); T pop(); T peek(); int getSize(); boolean isEmpty(); } 然后写一实现...原创 2019-03-03 20:04:46 · 237 阅读 · 0 评论 -
循环队列
目录循环队列入队扩容出队 循环队列 如图,判断循环队列是否已满是根据队首front和队尾tail的关系。如果数组的最后一个位置已有元素,但是队首前面依然有空格也不表示队列已满。需要注意的是,我们需要空余出一个位置来,以图中为例,此时“tail+1= =front”,如果继续填入元素,那么tail==front,和判断队列是否为空——“front= =tail”就冲突了。因此当“tail+1= =...原创 2019-03-03 20:05:52 · 359 阅读 · 0 评论 -
二分搜索树
目录概念创建一个二分搜索树类添加元素查询先序遍历中序遍历后序遍历先序遍历的非递归实现 概念 二分搜索树是二叉树 二分搜索树的每个节点的值-&gt; 大于其左子树的每个节点的值,小于其右子树的每个节点的值。因此二分搜索树不包含重复节点。 存储的元素具有可比较性。 创建一个二分搜索树类 public class BST&lt;E extends Comparable&lt;E&gt;&gt; { ...原创 2019-03-11 23:54:30 · 148 阅读 · 0 评论