java数据结构之——单链表
学习数据结构第三天,康康我能坚持到第几天!!
链表可以说是数据结构中最常见的一种数据结构了,在实际开发过程中也有很多地方会使用到单链表,所以单链表也是一个优秀的程序员必须要掌握的一项数据结构。
什么是单链表
单链表是一种链式存储结构,存储元素的内存地址是不连续的,链表中的数据以节点来表示,每个节点有两部分组成,数据域和指向后继的指针域。
单链表的特点
- 链表是以节点的方式来存储的,是链式存储结构
- 每个节点包含一个 data 域和一个 next 域,data 用于存放数据, next 用于指向下一个节点
- 链表的各节点不一定是连续存储的
- 链表分为带头结点的和不带头结点的,根据实际需要来确定
基本图示
- head 表示链表的头结点,不存储数据,只是用来指向链表的第一个数据
- 链表的最后一个节点的 next 域指向的是 null,表示链表到这里结束了
单链表的基本操作
- 创建链表
- 添加数据到链表中
- 在链表中查找数据
- 从链表中删除数据
- 修改链表中的数据
java代码展示
public class LinkListDemo {
public static void main(String[] args) {
LinkList linkList = new LinkList();
Hero hero1 = new Hero(1, "宋江", "及时雨");
Hero hero2 = new Hero(2, "卢俊义", "玉麒麟");
Hero hero3 = new Hero(3, "吴用", "智多星");
// linkList.addHero(hero1);
// linkList.addHero(hero2);
// linkList.addHero(hero3);
linkList.addByOredr(hero1);
linkList.addByOredr(hero3);
linkList.addByOredr(hero2);
linkList.listHero();
System.out.println("查找数据~~~");
System.out.println(linkList.getLastKHero(
linkList.getHeadHero(), 1));
System.out.println(linkList.getLastKHero(
linkList.getHeadHero(), 2));
// System.out.println("数据修改后~~");
// Hero upHero = new Hero(2, "小卢", "小麒麟");
// linkList.update(upHero);
// linkList.listHero();
// System.out.print