常用数据结构-2022

28 阅读1分钟

数据结构.png

数组

特点:
    ①索引查询,速度快
    ②数组元素可以是任意类型
    ③数组元素只能是一种相同类型
    ④数组可以视为对象,每个元素都是其成员变量
    ⑥对最后一个元素增删时,ArrayList速度其实比链表快

链表

    ```
    public class ListNode {
         int val;
         ListNode next;
         ListNode pre;  //双链表就是多个这个
         ListNode() {}
         ListNode(int val) { 
             this.val = val; 
             }
         ListNode(int val, ListNode next, /*ListNode pre*/) { 
             this.val = val; 
             this.next = next; 
             this.pre = pre;  //双链表就是多个这个
             }
    }
    ```

使用数组实现的叫静态栈、使用链表实现的叫动态栈
常用方法:
    empty()、peek()、pop()、push(obj)、search(obj)

队列

常用:remove(obj)、offer(obj)、poll()、peek()、isEmpty()、size()
可以查看
    https://blog.csdn.net/zyx1260168395/article/details/103656994

非线性,相对于链表、数组而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会高)
```
public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {}
    TreeNode(int val) { this.val = val; }
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}
```

散列表 Set、Map

红黑树