跟小刀 学有序链表的实现
来源:互联网 发布:网络著作权.司法解释 编辑:程序博客网 时间:2024/04/30 12:18
- 今天我们学习一下有序链表的实现。其实他和单向链表的结构是一样的,不过他是有序的。插入的时候不一样,我直接上代码吧
先写一个linkpublic class Link { public long iData; public Link next; public Link(long data){ iData =data; } public void display(){ System.out.print(iData+" "); }}
然后写一个有序链表的实现类public class SortLink { private Link first; public SortLink(){ first = null; } public void insert(long dd){ Link newLink = new Link(dd); Link provious = null; Link current = first; //[1] [3] 插入[2] //如果比当前的大就插入到当前的后面 这里就是找到插入点。 //如果dd 大于第一个节点的话。就从下一个节点开始找。 while(current !=null && dd >current.iData){ provious = current; current =current.next; } // 没有到找所以就可以添加到第一个。 if(provious == null) first = newLink; else //如果找到了就插进入 provious.next =newLink; newLink.next = current; } public void display(){ System.out.print("sortLink( 小--大):"); Link current = first; while(current!=null){ current.display(); current = current.next; } System.out.println(); } public long deleteFirst(){ Link temp = first; first =first.next; return temp.iData; }}
有序链表就是在插入的时候做了一些处理。
测试类:
public class TestSortLink { public static void main(String[] args) { SortLink sort = new SortLink(); sort.insert(20); sort.insert(40); sort.display(); sort.insert(10); sort.insert(30); sort.insert(50); sort.display(); sort.deleteFirst(); sort.deleteFirst(); sort.display(); }
测试结果:
sortLink( 小--大):20 40 sortLink( 小--大):10 20 30 40 50 sortLink( 小--大):30 40 50
有序链表在一些使用有序的场景的时候很合适。。它时间复杂度为O(n/2)平均下来。。对于时间复杂度我没有过多研究。毕竟自己算法不会。满满的心塞。
0 0
- 跟小刀 学有序链表的实现
- 跟小刀学 数据结构 双向链表
- 跟小刀学习 java 数据结构 栈和队列的实现
- 跟小刀学习 数据结构二叉树的实现
- 跟小刀学习 java 数据结构 单向链表
- 跟小刀学习 递归简单实现
- 跟小刀学习 lucene 分词的原理
- 跟小刀 学习数据结构 红黑树的概念
- 有序表的实现
- 数据结构2----线性表顺序存储和链式存储的实现(霜之小刀)
- 数据结构3----线性表中链式结构的其他几种实现(霜之小刀)
- 用javascript实现的有序链表
- 有序的双向链表实现
- 实现两个有序链表的合并
- 有序链表的部分实现
- 无锁有序链表的实现
- 实现两个有序链表的合并
- 无锁有序链表的实现
- Tree-----宽度优先遍历树(102. Binary Tree Level Order Traversal)
- 十二.JPQL高级查询
- Javaoop
- 题目1502:最大值最小化
- springmvc(六)---json数据交互
- 跟小刀 学有序链表的实现
- Lottie动画学习一 —— 入门博客介绍
- HihoCoder
- POJ3159 Candies(差分约束)
- MYSQL主从数据库破坏和恢复测试
- EL表达式
- 如何判断2个线段相交
- 优化Vue版本的todoList-加localStorage
- Java入门学习-理解什么是JRE和JDK,然后搭建JAVA开发环境,用eclipse写出第一个helloworld程序