1.插入和删除结点操作插入结点操作:将结点s插入到单链表中p结点的后面。(a)插入前(b) s.next=p.next(d)插入后(c) p.next=s6/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)删除前(b)删除后7/85
删除结点操作:删除单链表中p结点的后继结点。 . a p b . (a)删除前 . a p b . (b)删除后 7/85
整体建立单链表2通过一个含有n个元素的a数组来建立单链表。建立单链表的常用方法有两种:头插法和尾插法。8/85
2. 整体建立单链表 通过一个含有n个元素的a数组来建立单链表。 建立单链表的常用方法有两种:头插法和尾插法。 8/85
头插法建表从一个空表开始,依次读取数组a中的元素。生成新结点S,将读取的数据存放到新结点的数据成员中。将新结点s插入到当前链表的表头上。s.next=head.next;aihead.next=s;head9/85
从一个空表开始,依次读取数组a中的元素。 生成新结点s,将读取的数据存放到新结点的数据成员中。 将新结点s插入到当前链表的表头上。 s.next=head.next; head.next=s; head . ∧ ai s 9/85
public void CreateListF(E[] a)//头插法:由数组a整体建立单链表LinkNode<E> S;//循环建立数据结点Sfor (int i=o;i<a.length;i++)/新建存放a[il元素的结点ss=new LinkNode<E>(a[i]);广//将s结点插入到开始结点之前,头结点之后s.next=head.next;head.next=s;a=('a',"b','c','d'),调用CreateListF(a)headdcb+aa头插法建立的单链表中数据结点的次序与a数组中的次序正好相反10/85
public void CreateListF(E[] a) //头插法:由数组a整体建立单链表 { LinkNode<E> s; for (int i=0;i<a.length;i++) //循环建立数据结点s { s=new LinkNode<E>(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