java数据结构与算法-有序链表
2017-08-15 10:10
435 查看
一、有序链表
/**
* Created by Xi on 2017/7/30.
* 有序链表
*/
public class LinkListOrderly {
private static final String TAG="LinkListOrderly";
private LinkFirstLast first;//单链表的第一个元素
public LinkListOrderly(){
first=null;
}
/**
* 插入元素
* @param dd
*/
public void insert(double dd){
LinkFirstLast newLind=new LinkFirstLast(dd);
LinkFirstLast previous=null;//前一个元素
LinkFirstLast current=first;
while(current!=null&&dd>current.dData){//当前元素小于要插入的元素,继续找
previous=current;
current=current.next;
}
if(previous==null) {
first = newLind;
}else {
previous.next = newLind;
}
newLind.next=current;
}
/**
* 判断链表是否为空
*/
public boolean isEmpty(){
return first==null;
}
/**
* 删除元素
* @return
*/
public LinkFirstLast remove(){
LinkFirstLast temp=first;
first=first.next;
return temp;
}
/**
* 展示链表
*/
public void displayList(){
Log.i(TAG,"List (first-->last):");
LinkFirstLast current=first;
while(current!=null){
current.displayLink();
current=current.next;
}
}
}
二、调用函数如下
/**
* 有序链表
*/
public void link_orderly(){
LinkListOrderly theLink=new LinkListOrderly();
theLink.insert(20);
theLink.insert(40);
theLink.displayList();
theLink.insert(30);
theLink.insert(60);
theLink.displayList();
theLink.remove();
theLink.displayList();
}
日志打印如下:
08-15 10:10:21.986 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.986 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 20.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 20.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 30.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 60.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 30.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 60.0
源码下载地址:点击打开链接
/**
* Created by Xi on 2017/7/30.
* 有序链表
*/
public class LinkListOrderly {
private static final String TAG="LinkListOrderly";
private LinkFirstLast first;//单链表的第一个元素
public LinkListOrderly(){
first=null;
}
/**
* 插入元素
* @param dd
*/
public void insert(double dd){
LinkFirstLast newLind=new LinkFirstLast(dd);
LinkFirstLast previous=null;//前一个元素
LinkFirstLast current=first;
while(current!=null&&dd>current.dData){//当前元素小于要插入的元素,继续找
previous=current;
current=current.next;
}
if(previous==null) {
first = newLind;
}else {
previous.next = newLind;
}
newLind.next=current;
}
/**
* 判断链表是否为空
*/
public boolean isEmpty(){
return first==null;
}
/**
* 删除元素
* @return
*/
public LinkFirstLast remove(){
LinkFirstLast temp=first;
first=first.next;
return temp;
}
/**
* 展示链表
*/
public void displayList(){
Log.i(TAG,"List (first-->last):");
LinkFirstLast current=first;
while(current!=null){
current.displayLink();
current=current.next;
}
}
}
二、调用函数如下
/**
* 有序链表
*/
public void link_orderly(){
LinkListOrderly theLink=new LinkListOrderly();
theLink.insert(20);
theLink.insert(40);
theLink.displayList();
theLink.insert(30);
theLink.insert(60);
theLink.displayList();
theLink.remove();
theLink.displayList();
}
日志打印如下:
08-15 10:10:21.986 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.986 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 20.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 20.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 30.0
08-15 10:10:21.987 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 60.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkListOrderly: List (first-->last):
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 30.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 40.0
08-15 10:10:21.988 16378-16378/com.tool.wpn.quicksort I/LinkFirstLast: 60.0
源码下载地址:点击打开链接
相关文章推荐
- java数据结构与算法之顺序表与链表深入分析
- 数据结构与算法(Java描述)-4、单链表以及单链表的应用
- Java单链表、双端链表、有序链表实现
- 牛客网编程-合并两个有序链表(java)
- Leet Code 21 合并两个有序链表 - Java
- 《数据结构与算法》学习笔记15 有序链表和双向链表
- java数据结构-链表实现堆栈 控制插入的方式,成为有序链表
- 九度1519题 合并两个有序链表java实现,(也是剑指offer中的题)
- Java 数据结构与算法之链表实现
- 数据结构与算法之有序链表去重
- Java 实现有序链表
- java实现顺序表,链表,栈,队列_数据结构与算法
- 数据结构与算法之链表2---单向链表(Java版)
- leetcode解题之23.Merge k Sorted Lists Java版本(合并k个有序的链表)
- 数据结构与算法(5) - 链表,双端链表,有序链表,双向链表,迭代器
- Java实现两个有序链表的合并
- JAVA 线索二叉树转换为双向有序链表
- java基于有序链表的优先级队列实现
- 数据结构与算法 ---- 线性表 及Java实现 顺序表、链表、栈、队列
- 数据结构与算法(2)---Java语言实现:线性表的单链表定义:方法补充,实现单链表反转,去重