2021-2022-1 20211420《信息安全专业导论》链表
有关链表
链表特点
链表的第一个结点和最后一个结点为首结点和尾结点
尾结点的链接(next)为空(null)
每个结点next引用都相当于一个指针,指向另一个结点
插入操作
根据链表特点和图示,可以写出插入操作的关键步骤:
1.指明新结点后继:s.setNext(p.getNext())
或s.next=p.next
2.指明新结点的前驱:p.setNext(s)或p.next=s
所以可以设计伪代码如下
Insert data into SinglyLinkedlist #指明名称
Set SLL #设定一个链表
Display data from head #从链表的head处开始遍历链表
IF (data=s) #s为需要插入的元素,其位置在p元素后面
s.next=p.next #将s的链接设置为p的链接
p.setNext(s) #在p的链接处设置元素s,即插入元素s
IF (data=null) #判断data遍历到链表的尾部
write SLL #打印新链表
删除操作
原理和插入是类似的
设计伪代码如下
Delete data from SinglyLinkedlist #指明名称
Set SLL #设定一个链表
Display data from head #从链表的head处开始遍历链表
IF (data=t) #t为需要删除的元素,其位置在p元素后面
t.next=p.next #将t的链接设置为p的链接
p.setNext(q) #在p的链接处设置元素q,元素q可以是t后面一个元素,也可以是尾部的null
IF (data=null) #判断data遍历到链表的尾部
write SLL #打印新链表