数据结构之链表Linked List

数据结构之链表Linked List

一、基础

1、简介
真正的动态数据结构,最简单的动态数据结构,引用(指针)递归,数据存储在“节点”(Node)中

2、演示代码

Class Node{
		E	e;
		Node next;
}

3、特点
(1)生成节点,挂接下一个节点
(2)最后一个链表为null,真正的动态,不需要处理固定容量的问题

4、缺点
(1)丧失了随机访问的能力
(2)组在内存分布是连续的,而链表在内存中不连续
(3)链表不适合索引有语义的情况

5、原理
(1)链表头head,新添加的节点node
在链表头添加元素:node.next=head head=node ---- node消失
(2)在链表中间添加元素,要插入节点的位置,prev.next=node node.next=prev.next
(3)为链表设立虚拟头结点:null空结点,dummyHead虚拟头节点

二、链表与递归

1、递归本质上将原来的问题,转换成更小的同一问题
2、递归函数就是一个函数,完成一个功能,可以自己调用自己
3、递归函数的微观解读:子过程的调用,最后一个null
4、递归调用是有代价的:函数调用+系统栈空间

posted @ 2020-03-11 20:18  李泽坤  阅读(129)  评论(0编辑  收藏  举报