数据结构—链表

链表是一种数据结构,由一组节点(node)组成,这些节点一起表示一个序列。在最简单的形式下,每个顶点都由一个数据和对序列中下一个顶点的引用(链接)组成。
在这里插入图片描述
链表及其变体被用作实现List、Stack、Queue和Deque ADT的底层数据结构,我们将讨论了带有单个下一个指针的(Singly)链表(LL)及其两种变体:堆栈和队列,以及带有下一个和上一个指针和其变体双向队列Deque的双向链表(DLL)。

一、List

创建

// 创建一个list
List list = new ArrayList();
list.add(7);
list.add(12);
list.add(18);
list.add(29);
list.add(36);

这个链表由5个节点构成,每个节点上的值为:7,12,18,29,36,他们的指针(下标)分别为:0,1,2,3,4。
在这里插入图片描述

搜索

当我们查找某一个元素的时候。

如果为空,返还 未找到
index = 0, tmp = head
while (tmp.item != v)
  index++, tmp = tmp.next
  if tmp == null
    返还 未找到
返还 索引

删除

删除头部
tmp = head
head = head.next
delete tmp
删除尾部
node pre = head
tmp = head.next
while (tmp.next != null)
  pre = pre.next
pre.next = null
delete tmp, tail = pre
删除中间节点
node pre = head
for (k = 0; k < i-1; k++)
  pre = pre.next
node del = pre.next,aft=del.next
pre.next=aft //跳过 del
删除del

插入

头部插入
node temp = new Node(input)
temp.next = head
head=temp
尾部插入
node temp = new node(input)
tail.next=temp
tail=temp
中间部分插入
node pre = head
for (k = 0; k < i-1; k++)
  temp1 = temp1.next
node aft = pre.next
node vtx= new node(v)
vtx.next = aft
pre.next = vtx
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值