双向链表
应用: LinkedList
什么是双向链表 :
双向链表是由若干个节点构成,其中每个节点均由三部分组成(前驱节点prev,元素本身ele,后继节点next),这些节点在内存中是游离状态存在的.
添加链表:
add(E) 默认尾部添加
add(int index,E ele) 在中间位置添加
删除链表:
remove(int index) 下标删除 断开链接 从新链接 返回值为删除的元素E
查找元素(重点):
get(int index) 返回值下标对应的元素值E
遵循对半查找,若查找元素下标大于长度一半逆序查找 反之顺序查找
修改元素
set(int index,E ele) 返回元素值 根据链表下标修改
递归
什么是递归:
是一种思想,应该到编程中体现为方法调用方法本身
阶乘公式:n*(n-1)!
内部实现:
案例:斐波那契数列(Fibonacci)
求出数列中某个位置的值:
1 1 2 3 5 8 13 21 34 55....
使用递归实现:
public class Fibonacci {
public static void main(String[] args) {
System.out.println("请输入位置:");
Scanner scanner = new Scanner(System.in);