线性表之链式存储结构-单向链表

单链表


删除一个节点


插入一个节点


Message的插入操作


根据when确定位置


图5

如图5为MessageQueue的删除操作:当头节点不为null,前节点的next赋值为当前节点的next;头节点为null,直接赋值为当前节点的next。最后当前节点的next赋值为null,等待gc

例子麻将:如下图,从服务器传过来的是无序的一副牌,过会再翻开变成有序的一副牌,此处要分析的就是从无序到有序的一个过程。经过第一次处理,分为9组,九个链表;第二次处理,按照花色分组得到三个链表,再将它们一个个连起来就得到最后结果了

第一次处理的关键代码:

LinkedList[] rankList=new LinkedList[9];

for (int i=0;i

rankList[i]=new LinkedList();

}

//把数据一个个放到对应的组中

while (list.size() >0) {

//取一个

    Mahjong m=list.remove();

//放到组中

    rankList[m.rank-1].add(m);

}

//把九组合并在一起

for (int i=0;i

list.addAll(rankList[i]);

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容