zoukankan      html  css  js  c++  java
  • 基本数据结构简述

    数据结构分类:线性结构和非线性结构

    什么是线性和非线性

    我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构;

    线性结构包括:数组,链表,队列,栈;

    非线性结构包括:树,图,表;

    线性结构

    1.数组

    特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元素移动空间,比较慢。

    数组使用场景:频繁查询,很少增加和删除的情况。

    2.链表

    特点:元素可以不连续内存中,是以索引将数据联系起来的,当查询元素的时候需要从头开始查询,所以效率比较低,然而添加和删除的只需要修改索引就可以了

    使用场景:少查询,需要频繁的插入或删除情况

    3.队列

    特点:先进先出,

    使用场景:多线程阻塞队列管理非常有用

    4.栈

    特点:先进后出,就像一个箱子,

    使用场景:实现递归以及表示式

    5.数组与链表的区别

    数组连续,链表不连续(从数据存储形式来说)

    数组内存静态分配,链表动态分配

    数组查询复杂度0(1),链表查询复杂度O(n)

    数组添加或删除,复杂度o(n),链表添加删除,复杂度O(1)

    数组从栈中分配内存。链表从堆中分配内存。

    待续:

    非线性结构

  • 相关阅读:
    南阳oj 814 又见拦截导弹
    南阳 zb的生日和邮票分你一般(01背包思路)
    导弹拦截(最长下降子序列)变形
    控件绝对定位函数
    小玩意
    java获取本机所有可用字体
    按键监听类KeyListener及适配器改良方案
    编译php-memcached扩展
    Memcached安装,启动,连接
    Apache配置虚拟主机
  • 原文地址:https://www.cnblogs.com/Jashinck/p/10646309.html
Copyright © 2011-2022 走看看