JAVA 数组,链表,树的基本概念与优劣。

来源:互联网 发布:淘宝哪家男装店好 编辑:程序博客网 时间:2024/06/07 20:33

数组:

1:有下标索引且连续存放: 

缺点:插入删除效率不理想。比如插入数组时候需要移动其后面的值,效率低

优点:查找效率理想。直接按照下标查

2:固定长度

缺点:容易造成存储空间浪费与溢出

优点:使用起来比较方便,清晰

举例:  

int a[] ={1,2,3}              int a[] = new int[3];


      链表

            1:有单向或者双向的索引

优点:插入删除速度快

缺点:查询效率较数组低

           2:不固定长度,且不要求连续

优缺点与数组相反

                举例:双向链表

private static class Node<E> {      E item;   //数据    Node<E> next;   //下个节点    Node<E> prev;   //上个节点      Node(Node<E> prev, E element, Node<E> next) {          this.item = element;          this.next = next;          this.prev = prev;      }  }  

  二叉树:

顺序存储可能会浪费空间(在非完全二叉树的时候),但是读取某个指定的节点的时候效率比较高O(0)链式存储相对二叉树比较大的时候浪费空间较少,但是读取某个指定节点的时候效率偏低O(nlogn)



   举例:简单二叉树模型

public class BinaryTree {      private Node root;    //本体          /**       * 内部类实现结点类,可提高安全性       * @author nishiting       *       */            private static class Node {            Node left;            Node right;            int data;                Node(int newData) {                left = null;                right = null;                data = newData;            }            }   




0 0
原创粉丝点击