河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较

线性表: (a0,a1,.,ai,ai+1,.,an-1) 结点包含有元素值和前后继结点的地址信息 结点 映射 1/85

如果每个结点只设置一个指向其后继结点的指针成员,这样的链表 称为线性单向链接表,简称单链表。 头结点 开始结点 尾结点 head a0 a1 . an-1 ∧ (a)单链表 如果每个结点中设置两个指针成员,分别用以指向其前驱结点和后 继结点,这样的链表称之为线性双向链接表,简称双链表。 头结点 开始结点 尾结点 dhead a0 a1 . an-1 ∧ (b)双链表 2/85

每个结点为LinkNode泛型类对象,包括存储元素的数据成员 data(设其数据类型为E)和存储后继结点的指针成员next。 class LinkNode //单链表结点泛型类 { E data; LinkNode next; public LinkNode() //构造方法 { next=null; } public LinkNode(E d) //重载构造方法 { data=d; next=null; } } 头结点 开始结点 尾结点 head a0 a1 . an-1 ∧ 3/85

单链表泛型类LinkListClass public class LinkListClass //单链表泛型类 { LinkNode head; //存放头结点 public LinkListClass() //构造方法 { head=new LinkNode(); //创建头结点 head.next=null; //头结点next成员置为next } //基本运算算法 } head ∧ 4/85

head . ∧ 单链表对象L: L.head L.head.next 结点引用方式: 5/85

1. 插入和删除结点操作 插入结点操作:将结点s插入到单链表中p结点的后面。 . a p b . x s (b)s.next=p.next . a p b . x s (c)p.next=s . a p x b . s (d)插入后 . a p b . s x (a)插入前 6/85

删除结点操作:删除单链表中p结点的后继结点。 . a p b . (a)删除前 . a p b . (b)删除后 7/85

2. 整体建立单链表 通过一个含有n个元素的a数组来建立单链表。 建立单链表的常用方法有两种:头插法和尾插法。 8/85

从一个空表开始,依次读取数组a中的元素。 生成新结点s,将读取的数据存放到新结点的数据成员中。 将新结点s插入到当前链表的表头上。 s.next=head.next; head.next=s; head . ∧ ai s 9/85

public void CreateListF(E[] a) //头插法:由数组a整体建立单链表 { LinkNode s; for (int i=0;i(a[i]); //新建存放a[i]元素的结点s s.next=head.next; //将s结点插入到开始结点之前,头结点之后 head.next=s; } } a=('a','b','c','d'),调用CreateListF(a) head d c b a ∧ 头插法建立的单链表中数据结点的次序与a数组中的次序正好相反 10/85
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.1 线性表的定义 2.2 线性表的顺序存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.3 算法分析 1.4 数据结构的目标.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.1 什么是数据结构 1.2算法及其描述.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第13章 网络编程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第12章 多线程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第11章 JDBC.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第10章 IO.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第9章 反射机制.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第8章 泛型.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第7章 集合.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第6章 Java API.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第5章 异常.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第4章 面向对象(下).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第2章 Java编程基础.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第1章 Java开发入门.pptx
- 《数据结构》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《数据结构》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《数据结构》课程教学大纲 Data Structure.doc
- 《Java程序设计》课程教学课件(PPT讲稿)Coding_Standard_Java.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.5 线性表的应用.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.1 栈.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.2 队列.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第4章 串.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第5章 递归.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第6章 数组和稀疏矩阵.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.1 树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.2 二叉树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.3 二叉树先序、中序和后序遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.4 二叉树的层次遍历 7.5 二叉树的构造.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.6 线索二叉树 7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.9 树算法设计和并查集.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.1 图的基本概念 8.2 图的存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.3 图的遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.4 生成树和最小生成树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.5 最短路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.6 拓扑排序 8.7 AOE网与关键路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.1 查找的基本概念 9.2 线性表的查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(1/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(2/2).pptx
