单链表的结构
一种链式存取的数据结构,单链表中的数据是以结点的形式存在,每一个结点是由数据元素和下一个结点的存储的位置组成。单链表与数组相比的最大差别是:单链表的数据元素存放在内存空间的地址是不连续的,而数组的数据元素存放的地址在内存空间中是连续的,这也是为什么根据索引无法像数组那样直接就能查询到数据元素。
首先,所以线性表都有索引,例如:数组、链表、栈、队列、字符串。
单链表问题中大多都需要考虑如何找前驱节点。
由于单链表是单向的,只能从前向后查找 不能从后向前查找。
当前火车中车厢的个数(实际存储的元素个数) private int size; 当前火车的第一个结点private Node head;
在插入一个新的节点时,不仅要关心链表是否为空、是否有前驱节点、判断合法性、判断是否需要返回值。
例如、在头部添加节点时,需要考虑元素是否为空,当size == 0 此时 head = node;
当确定至少含有一个元素时,head应指向新节点node
//使用addfirst向火车中插入元素 // 一个节点都没有 -> 新插入元素就是第一个 if (size == 0){ Node node = new Node(data); head = node; size ++; }else{ //此时火车车厢中有节点 Node node = new Node(data); node.next = head; head = node; size ++;