链表

一,单链表

在链表中维护对头部节点的引用,增删头部的时间复杂度为O(1),增删查其他位置时间复杂度为O(n),需要从头部依次做比较,直到找到对应元素,但是比数组的O(n)要快,因为只比较不复制,数组需要复制

单链表可以实现栈功能,后进先出,进则insertfirst,出则deletefirst

二,双端链表

在链表中维护对头部和尾部节点的引用,增删头部和增加尾部的时间复杂度为O(1),但是无法实现删除尾部,因为没有倒数第二个对象的引用

双端链表可以实现队列功能,先进先出,进则insertlast,出则deletefirst

三,有序链表

插入元素时需遍历链表找到插入位置,因此增删某个元素时间复杂度为O(n),但是增删最小元素的复杂度为O(1),因此适合实现优先级队列,因为优先级队列往往频繁存取最小值即优先级最高的元素,还可以对数组进行排序

package fulan.data;
import java.util.Arrays;
import java.util.SortedSet;
import java.util.TreeSet;/**
*
* 项目名称:TestStringUtils
* 类名称:SortListDemo
* 类描述:   使用sortedset对数组进行排序
* 创建人:xuanwugang
* 创建时间:2018年3月26日 下午11:29:42
* 修改人:xuanwugang
* 修改时间:2018年3月26日 下午11:29:42
* 修改备注:
* @version
*
*/
public class SortListDemo {public static void main(String[] args) {//创建一个sortedsetSortedSet<Integer> st = new TreeSet<Integer>();int[] myArray={2,2,5,1,4,3};//将数组中元素依次放入sortedset中,自动拍好顺序for(int i = 0;i<myArray.length;i++){st.add(myArray[i]);}//将set转化为数组Integer[] newArray = st.toArray(new Integer[0]);System.out.println(Arrays.toString(newArray));}
}

四,双向链表

几种基本的数据结构(待修改)相关推荐

  1. python的内建数据结构包括_Python中3种内建数据结构:列表、元组和字典

    Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面 ...

  2. 【算法】图文并茂,一文了解 8 种常见的数据结构

    百度百科对数据结构的定义是:相互之间存在一种或多种特定关系的数据元素的集合.定义很抽象,需要大声地朗读几遍,才有点感觉.怎么让这种感觉来得更强烈,更亲切一些呢?我来列举一下常见的 8 种数据结构,数组 ...

  3. 手机html5游戏内存修改,一种防止游戏被内存修改器修改的方法

    一种防止游戏被内存修改器修改的方法 [技术领域] [0001]本发明涉及游戏数据处理领域,尤其涉及一种防止游戏被内存修改器修改的方法. [背景技术] [0002]目前,电子游戏越来越受到大家的喜爱,丰 ...

  4. (笔记)堆和栈的区别-两种不同的数据结构

    堆栈其实是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除. 要点:堆:顺序随意. 栈:后进先出(Last-In/First-Out) 堆和栈 ...

  5. redis五种常见的数据结构

    文章目录 概述 一.对象的类型和编码 二.五种数据结构 五种数据结构的底层实现结构 1.字符串(String) 1)int 编码 2)embstr 编码 3)raw 编码 2.列表(List) 1)z ...

  6. 几种常见树形数据结构小结

    最近新学习了很多厉害的数据结构,在大佬们的熏陶之下,也感悟了很多,对大佬们的实力也有了更加深厚的了解(先膜一番orz,换个姿势zto,再来一次owz) 左偏树 左偏树又名可并堆,多被用来对一些需要合并 ...

  7. 【大数据分析】k-cores,一种基于图数据结构的分解方法

    参考 <An O(m) Algorithm for Cores Decomposition of Networks> 介绍 为了能够更好的处理大型图数据结构,有时需要将其按照要求进行分解, ...

  8. mysql修改表名几种方式_Oracle数据库中修改表名的几种方式

    Oracle数据库中修改表名的几种方式如下:answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)answer2: ...

  9. C++几种常见的数据结构

    一.数据结构 数据结构可以分为如下几种: 1.线性表 线性表存储的数据是依次排列的,具有一对一的相连方式.每个元素的左右两边都具有小于或等于1个相邻节点. 线性表从存储方式来说,分为顺序存储和链式存储 ...

最新文章

  1. windows 7 全屏游戏解决方案
  2. 计算机视觉和模式识别领域SCI期刊介绍
  3. RedHat AS4 配置Yum
  4. 爬去哪儿网5A景点评论
  5. kafka消费者开发方式小结
  6. is array php,PHP 源码 — is_array 函数源码分析
  7. Algorithms Part 1-Question 5- Dijkstra's shortest-path-最短路径算法
  8. C# DateTime 日期加1天 减一天 加一月 减一月 等方法
  9. 广州最最最牛逼的 IT 公司全在这了!
  10. Parallel Stream 的错误实践
  11. 使用UE4创建一个简单真实的地球(一)
  12. 激励人生10张英文励志海报
  13. java jvm sdk_JDK、SDK、JRE、JVM概念详解
  14. 接入层交换机、汇聚层交换机和核心层交换机的区别
  15. python word转pdf linux_Linux下使用LibreOffice+python将doc/docx/wps格式的文档转成html/txt/docx等格式...
  16. “年薪百万”的视频剪辑师?Adobe专家让这一切都成为可能
  17. Oracle数据库ASM管理-华为闪存添加ASM存储实践1
  18. Js获取中国农历,用于确定非固定的农历节假日
  19. C语言制作的讯飞语音合成、识别、唤醒标准调用接口DLL
  20. 如何用excel做正交分析_利用Excel进行正交设计及分析.pdf

热门文章

  1. MediaPlayer详解
  2. tf.where()详解
  3. pip安装pytorch出现报错MemoryError
  4. 高并发编程之生产者—消费者设计模式
  5. springboot学习1
  6. android工程文件assts,Android初始化FaceSDK报错
  7. 华三设备SSH登录方式
  8. nsga竞标赛_广告竞标出价策略
  9. 基于HTML5 Canvas的开源图形组件-ichartjs 入门篇
  10. PUMA 560 机器人构型总结