zoukankan      html  css  js  c++  java
  • 数据结构

    首行占位

    介绍

      数据是一个抽象的概念,将其进行分类后得到程序设计语言中的基本类型。如:int,float,char等。

      数据元素之间不是独立的,存在特定的关系,这些关系便是结构。

      数据结构就是指数据对象中数据元素之间的关系。

    1.数组

      数组是在内存中可以连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。

      例:Python中的列表

      适用场景:频繁查询,对存储空间要求不大,很少增加和删除的情况。

      优点:

        1.按照索引查询元素速度快

        2.按照索引遍历数组方便

      缺点:

        1.数组的大小固定后就无法扩容了

        2.数组只能存储一种类型的数据

        3.添加,删除的操作慢,因为要移动其他的元素

    2.栈

      栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶运行操作,栈底不允许操作。

      栈的特点:先进后出,或者说后进先出,从栈顶放入元素的操作叫做入栈,取出元素叫出栈。

      适用场景:常用于实现递归功能方面的场景,例如斐波那契数列。

    3.队列

      队列也是一种线性表,队列可以在一端添加元素,在另一端取出元素,也就是先进先出。

      从一端放入元素的操作称为入队,取出元素为出队。

      使用场景:在多线程阻塞队列管理中非常适用。

    4.链表

      链表是物理存储单元上非连续的、非顺序的存储结构。

      数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域(内存空间),另一个是指向下一个结点地址的指针域。

      根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。

    5.树

      树是一种数据结构,它由n(n>=1)个有限节点组成一个具有层次关系的集合。

      树的特点:

        1.每个节点有零个或多个子节点

        2.没有父节点的节点称为根节点

        3.每一个非根节点有且只有一个父节点

        4.除了根节点外,每个子节点可以分为多个不相交的子树

      二叉树:

        1.每个节点最多有两颗子树,节点的度最大为2

        2.左子树和右子树是有顺序的,次序不能颠倒

        3.即使某节点只有一个子树,也要区分左右子树

    6.散列表

      也叫哈希表,是根据关键码和值(key和value)直接进行访问的数据结构

      哈希冲突——拉链发

    7.堆

      堆是一种比较特殊的数据结构,可以被看作一棵树的数组对象,具有以下的性质:

        1.堆中某个节点的值总是不大于或不小于其父节点的值

        2.堆总是一颗完全二叉树

    8.图

  • 相关阅读:
    content
    Jexus~mono中使用StackExchange.redis的问题
    Jexus~docker与它产生了暖味
    LindAgile~缓存拦截器支持类的虚方法了
    LindAgile~大叔新宠~一个无所不能框架
    docker~yml里使用现有网络
    C语言头文件组织
    Hyperion Essbase BusinessRule 函数学习--2
    tomcat使用说明
    [置顶] SSO单点登录系列6:cas单点登录防止登出退出后刷新后退ticket失效报500错
  • 原文地址:https://www.cnblogs.com/yijue-lu/p/11159052.html
Copyright © 2011-2022 走看看