《算法基础》——3.7 多线程链表

本节书摘来自华章计算机《算法基础》一书中的第3章,第3.7节,作者:(美)罗德·斯蒂芬斯(Rod Stephens)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.7 多线程链表

在一个单向链表中,一个单元格会有到下一个单元格的链接。在一个双向链表里,每个单元格都有到前一个单元格和到后一个单元格的链接。双向链表使用两种链接,以提供两种不同的移动方法:向前或向后。
可以为一个链表中的单元格添加其他链接,以提供更多的单元格之间的移动方式。例如,建一个Planet类来保存有关太阳系的行星的信息。则可以给Planet类加入一个名叫NextDistance的链路来链接到下一个最接近太阳的行星。沿着NextDistance链接遍历所有星球,顺序将是:水星,金星,地球,火星,木星,土星,天王星和海王星的行星(如果把冥王星当作一个行星的话,也可以选冥王星)。
同样,可以添加其他链路来依照质量、直径等特点排序行星。被这样的一种链路设定来遍历所有行星的线路被称为线程。
用单个线程来运行算法是很简单的,把它看做一个简单的链表即可,尽管在可视化的情况下所有的线程在同一时间内表现得比较混乱。例如,图3-8展示了一个三线程的行星链表。最细的线程通过行星到太阳距离的远近来依次访问行星。中等粗细的线程通过质量的大小来依次访问,而最粗的线程将通过直径大小来依次访问行星。
注 其他的数据结构也能拥有线程。比如,一棵树可能提供线程令程序可以按照对于树来说非典型的顺序来访问其中的结点。

screenshot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值