当前位置:   article > 正文

链表之有序链表_有序链表是什么意思

有序链表是什么意思

对于某些应用程序中链表中的数据保持有序性是有必要的。具有这个特性的链表叫做有序链表。有序链表的删除操作通常只限于删除链表头部,有时候也用find()方法删除链表中的特性元素。

一般说来在所有可以使用有序数组的场合都可以使用有序链表来代替,有序链表对于有序数组的优越性在于插入操作不需要进行数据移动,并且可以实现动态内存分配。

有序链表也可以实现优先级队列。

有序链表的java实现:

      
public class SortedList {
Node firstNode;
public SortedList(){
firstNode = null;
}
public boolean isEmpty(){
return firstNode == null;
}
public void addNode(String value){
Node node = new Node(value);
if(isEmpty()){
firstNode = node;
}else {
Node proNode = null;
Node currNode = firstNode;
while(currNode!=null&&Integer.parseInt(currNode.showValue())>Integer.parseInt(value)){
proNode = currNode;
currNode= currNode.getNext();
}
if(currNode == null){
proNode.setNext(node);
}else if (currNode==firstNode) {
node.setNext(firstNode);
firstNode = node;
}else {
node.setNext(currNode);
proNode.setNext(node);
}
}
}
public void delFirst(){
if(isEmpty()){
return;
}else {
firstNode = firstNode.getNext();
}
}
public void show(){
if(isEmpty()){
return;
}else {
Node node = firstNode;
while (node!=null) {
System.out.print(node.showValue()+" ");
node = node.getNext();
}
System.out.println();
}
}
}
测试代码


SortedList sList = new SortedList();
Random r = new Random();
for(int i =0;i<10;i++){
int x = r.nextInt(100);
sList.addNode(x+"");
}
sList.show();
sList.delFirst();
sList.show();


测试结果

88 78 68 59 43 39 25 7 6 0
78 68 59 43 39 25 7 6 0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/858753
推荐阅读
相关标签
  

闽ICP备14008679号