java数据结构之顺序表
1.顺序表中按位置随机访问的时间复杂度为O(1);2.顺序表中的在给定位置插入或者删除需要移动差不多一半的以上的元素,所以时间复杂度为O(n);3.存储密度=数据占用的存储量/整个结点占用的存储量。根据这个公式可以得出顺序表的存储密度为1;所以可以得出以下结论:线性表一般作为查询频繁,插入或者删除比较少的场景下使用。空间使用率上面是比较高的。下面直接上代码举例说明:publ …… 阅读全文
1.顺序表中按位置随机访问的时间复杂度为O(1);2.顺序表中的在给定位置插入或者删除需要移动差不多一半的以上的元素,所以时间复杂度为O(n);3.存储密度=数据占用的存储量/整个结点占用的存储量。根据这个公式可以得出顺序表的存储密度为1;所以可以得出以下结论:线性表一般作为查询频繁,插入或者删除比较少的场景下使用。空间使用率上面是比较高的。下面直接上代码举例说明:publ …… 阅读全文
在单链表中对表头进行插入或者删除时,时间复杂度为O(1)。单链表查询指定节点时因为要进行循环查找平均需要查找N/2次,所以时间复杂度为O(N)。存储密度=数据占用的存储量/整个结点占用的存储量。根据这个公式可以得出单链表的存储密度为大于1,在空间利用率上面比顺序表要差;所以可以得出以下结论:单链表一般作为插入或者删除频繁,查询比较少的场景下使用。空间使用率上面是比较顺序表要低。 …… 阅读全文
下面直接上代码举例说明:public class CircularLinkedList { //java中循环单链表 private class Node {//创建一个内部节点类 private Node next = null; private Object value = null; public Node() { } public Node(Object …… 阅读全文
感谢tu451953337的分享 原文链接地址:点击打开链接这个循环双链表写的相当不错,注释解析也很清晰。是个不错的博文!publicclassDbLinkedList{//定义内部类,用作链表的节点privateclassNode{Nodepre;//指向前一个节点 …… 阅读全文
本章讲顺序表的应用之大整数求和。java中int,long,float,double都有他们自己的精度值,如果超过精度就没办法进行运算了。这里可以用顺序表进行大整数运算。下面上代码看具体案例,进行解析:package SequenceList;public class LargeIntegerSum { public int[] add(int aa[],int bb[]){ in …… 阅读全文
利用java中单链表进行一元多项式求和,下面直接看案例分析:package LinkedList;import LinkedList.Elem.Node;public class LinkedAdd { public Node add(Elem e1,Elem e2){ Node pre=e1.getNode(); Node qre=e2.getNode(); Node p= …… 阅读全文
今天介绍一下数据结构中的栈。栈实现和线性表实现差不多都是有两种实现方式,一种是顺序栈,另一种就是链式栈。下面先介绍一下顺序栈的实现方式:package stack;import java.util.Arrays;/** * @ClassName: ArrayStack * @Description: 顺序栈 * @date 2016年6月2日 下午21:01 * @param …… 阅读全文
今天介绍一下数据结构中的线性队列以及线性队列中的缺点,和改善线性队列的循环线性队列操作。队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。(1)允许删除的一端称为队头(Front)。(2)允许插入的一端称为队尾(Rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(First In First …… 阅读全文