#数据结构

数据结构--二项队列分析及实现

一,介绍什么是二项队列,为什么会用到二项队列?与二叉堆一样,二项队列也是优先级队列的一种实现方式。在 数据结构--堆的实现之深入分析的末尾,简单地比较了一下二叉堆与二项队列。对于二项队列而言,它可以弥补二叉堆的不足:merge操作的时间复杂度为O(N)。二项队列的merge操作的最坏时间复杂度为O(logN)...

数据结构--堆的实现之深入分析

一,介绍以前在学习堆时,写了两篇文章:数据结构--堆的实现(上)  和  数据结构--堆的实现(下), 感觉对堆的认识还是不够。本文主要分析数据结构堆(讨论小顶堆)的基本操作的一些细节,比如insert(插入)操作和deleteMin(删除堆顶元素)操作的实现细节、分析...

数据结构---树---总结

一,一些定义树的深度定义:对于树中的节点n(i),n(i)的深度定义为,从根到n(i)的唯一路径的长度。树的高度定义:对于树中的节点n(i),n(i)的高度定义为,从n(i)到树中叶子节点的最长路径的长度。因为树中可能有多个叶子结点,n(i)到每个叶子结点都会有路径,路径最长的即为n(i)的高度。 二,表达式...
代码星球 ·2020-04-04

数据结构--堆的实现(下)

1,堆作为优先级队列的应用对于普通队列而言,具有的性质为FIFO,只要实现在队头删除元素,在队尾插入元素即可。因此,这种队列的优先级可视为按时间到达的顺序来衡量优先级的。到达得越早,优先级越高,就优先出队列被调度。更一般地,元素不能单纯地按时间到来的先后来分优先级(或者说插入的顺序),在这种情形下,使用堆更容易表达优先...
代码星球 ·2020-04-04

数据结构--图 的JAVA实现(下)

在上一篇文章中记录了如何实现图的邻接表。本文借助上一篇文章实现的邻接表来表示一个有向无环图。1,概述图的实现与邻接表的实现最大的不同就是,图的实现需要定义一个数据结构来存储所有的顶点以及能够对图进行什么操作,而邻接表的实现重点关注的图中顶点的实现,即怎么定义JAVA类来表示顶点,以及能够对顶点进行什么操作。为了存储图中...
代码星球 ·2020-04-04

数据结构--图 的JAVA实现(上)

1,摘要:本系列文章主要学习如何使用JAVA语言以邻接表的方式实现了数据结构---图(Graph),这是第一篇文章,学习如何用JAVA来表示图的顶点。从数据的表示方法来说,有二种表示图的方式:一种是邻接矩阵,其实是一个二维数组;一种是邻接表,其实是一个顶点表,每个顶点又拥有一个边列表。下图是图的邻接表表示。从图中可以看...
代码星球 ·2020-04-04

数据结构--堆的实现(上)

1,堆是什么?堆的逻辑结构是一颗完全二叉树,但物理结构是顺序表(一维数组)。同时,此处的堆不要与JAVA内存分配中的堆内存混淆。这里讨论的是数据结构中的堆。参考:计算机中的堆是什么?2,数组实现堆的优势及特点由于堆从逻辑上看是一颗完全二叉树,因此可以按照层序遍历的顺序将元素放入一维数组中。注意为了方便,数组的元素存放从...
代码星球 ·2020-04-04

词典的实现(3)--使用JAVA类库ArrayList实现Map数据结构

1,在词典的实现(2)-借助顺序表(数组)实现词典文章中使用了自定义的数组代替ArrayList,并实现了Map数据结构的基本功能。而借助JAVA类库ArrayList类的一些方法可以更加容易地实现Map。 2,实现思路如下ArrayListDictionary.java中定义了一个ArrayList的对象,...

POJ-数据结构-优先队列模板

优先队列模板优先队列是用堆实现的,所以优先队列中的push()、pop()操作的时间复杂度都是O(nlogn)。优先队列的初始化需要三个参数,元素类型、容器类型、比较算子。需要熟悉的优先队列操作:q.top()访问堆顶q.push()入堆q.pop()出堆不同类型元素的优先级设置定义堆需要注意最后两个>>之...

Java中的数据结构

以下内容引用自http://wiki.jikexueyuan.com/project/java/data-structures.html:Java工具包中所提供的数据结构非常强大并且有很多的功能。这些数据结构包含以下的接口和类:EnumerationBitSetVectorStackDictionaryHashtabl...
代码星球 ·2020-04-04

关系型数据库工作原理-数据结构(翻译自Coding-Geek文章)

   本文翻译自Coding-Geek文章:《Howdoesarelationaldatabasework》。 原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本...

Java数据结构之LinkedList、ArrayList的效率分析

前言:   在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。先了解一下List    List列表...

(数据结构)十分钟搞定时间复杂度(算法的时间复杂度)

我们假设计算机运行一行基础代码需要执行一次运算。intaFunc(void){printf("Hello,World!");//需要执行1次return0;//需要执行1次}那么上面这个方法需要执行2次运算intaFunc(intn){for(inti=0;i<n;i++){//需要执行(n+1)次printf(...

Linux 内核里的数据结构:位图(bitmap)

 注:本文由LCTT原创翻译,Linux中国荣誉推出    除了不同的基于链式和树的数据结构以外,Linux内核也为位数组(或称为位图(bitmap))提供了API。位数组在Linux内核里被广泛使用,并且在以下的源代码文件中包含了与这样的结构搭配使用的通用API:&n...

Linux 内核中的数据结构:基数树(radix tree)

转自:https://www.cnblogs.com/wuchanming/p/3824990.html  基数(radix)树Linux基数树(radixtree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(I...
首页上一页...2223242526下一页尾页