顺序表
什么是 list
list 的使用
线性表是什么
顺序表是什么
顺序表和线性表的关系
顺序表和数组的区别
List 和 ArrayList 的关系
如何自己模拟实现 myArrayList
ArrayList 的构造
ArrayList 的常见方法
以下两种写法有什么区别
ArrayList<Integer> arrayList = new ArrayList<>();
List<Integer> list = new ArrayList<>();
AraryList 的遍历的代码实现(6种)
iterator 方法的使用方法及原理
为什么 AraryList 、List 、Collection 、 Iterable 接口中都有 iterator 方法
listIterator 方法的使用方法及原理
listIterator 方法怎么实现从指定位置开始遍历
listIterator 方法怎么实现从后往前打印
返回值是 List<Integer> 是什么意思
返回值是 List<List<Integer>> 是什么意思
ArrayList 实现杨辉三角的代码实现
ArrayList 实现简单的洗牌算法
ArrayList 在任意位置插入或删除元素时的时间复杂度
链表
什么是链表
链表和顺序表有什么区别
链表属于线性表吗
链表分为哪几种
不带头链表和带头链表的区别
单向的双向的区别
循环和非循环的区别
单向链表
单向不带头非循环的链表结构图
双向带头循环的链表结构图(有点问题)
如何创建链表
一般把节点定义为静态内部类
节点类型是什么
如何遍历链表
遍历链表用while(head != null); 与 wile(head.next != null); 的区别
head = head.next; 代表什么意思
node1.next = node2; 代表什么意思
如何自己实现 MySingleList 的 show addFirst(头插) addLast(尾插) addIndex(任意位置插入) contains(是否包含) searchIndex(找到 index 位置的前一个结点) 等功能
链表插入时的正确写法是以下哪个,错误写法会造成什么后果
node.next = head;
head = node;
//正确
head = node;
node.next = head;
//错误
链表插入时应先绑定后面
尾插法的时间复杂度
双向链表
双向链表至少有几个域,分别代表什么
怎么创建一个双向链表
如何模拟实现双向链表的 add(头插)、addlast(尾插)、contains、size、display、addIndex(从任何位置插入)、remove、search、removeAll
双向链表的头驱怎么表示
LinkedList 中的方法的了解与使用
LinkedList 支持随机访问吗
顺序表和 LinkedList ,谁更适合任意插入的场景
链表的打印有几种方法
线性表有顺序存储和链式存储
栈
栈是以哪种形式实现的
栈的常见使用
入栈和入栈的方式
如何利用数组实现栈的各种功能(实现 MyStack )
将本身以递归实现的代码用循环实现
如何利用单链表实现栈的各种功能(实现 MyStack )
栈从尾部插入和删除,一般使用顺序表实现