几种基本的数据结构(待修改)
链表
一,单链表
在链表中维护对头部节点的引用,增删头部的时间复杂度为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));}
}
四,双向链表
几种基本的数据结构(待修改)相关推荐
- python的内建数据结构包括_Python中3种内建数据结构:列表、元组和字典
Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面 ...
- 【算法】图文并茂,一文了解 8 种常见的数据结构
百度百科对数据结构的定义是:相互之间存在一种或多种特定关系的数据元素的集合.定义很抽象,需要大声地朗读几遍,才有点感觉.怎么让这种感觉来得更强烈,更亲切一些呢?我来列举一下常见的 8 种数据结构,数组 ...
- 手机html5游戏内存修改,一种防止游戏被内存修改器修改的方法
一种防止游戏被内存修改器修改的方法 [技术领域] [0001]本发明涉及游戏数据处理领域,尤其涉及一种防止游戏被内存修改器修改的方法. [背景技术] [0002]目前,电子游戏越来越受到大家的喜爱,丰 ...
- (笔记)堆和栈的区别-两种不同的数据结构
堆栈其实是两种数据结构.堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除. 要点:堆:顺序随意. 栈:后进先出(Last-In/First-Out) 堆和栈 ...
- redis五种常见的数据结构
文章目录 概述 一.对象的类型和编码 二.五种数据结构 五种数据结构的底层实现结构 1.字符串(String) 1)int 编码 2)embstr 编码 3)raw 编码 2.列表(List) 1)z ...
- 几种常见树形数据结构小结
最近新学习了很多厉害的数据结构,在大佬们的熏陶之下,也感悟了很多,对大佬们的实力也有了更加深厚的了解(先膜一番orz,换个姿势zto,再来一次owz) 左偏树 左偏树又名可并堆,多被用来对一些需要合并 ...
- 【大数据分析】k-cores,一种基于图数据结构的分解方法
参考 <An O(m) Algorithm for Cores Decomposition of Networks> 介绍 为了能够更好的处理大型图数据结构,有时需要将其按照要求进行分解, ...
- mysql修改表名几种方式_Oracle数据库中修改表名的几种方式
Oracle数据库中修改表名的几种方式如下:answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)answer2: ...
- C++几种常见的数据结构
一.数据结构 数据结构可以分为如下几种: 1.线性表 线性表存储的数据是依次排列的,具有一对一的相连方式.每个元素的左右两边都具有小于或等于1个相邻节点. 线性表从存储方式来说,分为顺序存储和链式存储 ...
最新文章
- windows 7 全屏游戏解决方案
- 计算机视觉和模式识别领域SCI期刊介绍
- RedHat AS4 配置Yum
- 爬去哪儿网5A景点评论
- kafka消费者开发方式小结
- is array php,PHP 源码 — is_array 函数源码分析
- Algorithms Part 1-Question 5- Dijkstra's shortest-path-最短路径算法
- C# DateTime 日期加1天 减一天 加一月 减一月 等方法
- 广州最最最牛逼的 IT 公司全在这了!
- Parallel Stream 的错误实践
- 使用UE4创建一个简单真实的地球(一)
- 激励人生10张英文励志海报
- java jvm sdk_JDK、SDK、JRE、JVM概念详解
- 接入层交换机、汇聚层交换机和核心层交换机的区别
- python word转pdf linux_Linux下使用LibreOffice+python将doc/docx/wps格式的文档转成html/txt/docx等格式...
- “年薪百万”的视频剪辑师?Adobe专家让这一切都成为可能
- Oracle数据库ASM管理-华为闪存添加ASM存储实践1
- Js获取中国农历,用于确定非固定的农历节假日
- C语言制作的讯飞语音合成、识别、唤醒标准调用接口DLL
- 如何用excel做正交分析_利用Excel进行正交设计及分析.pdf