美文网首页
数据结构

数据结构

作者: xymspace | 来源:发表于2020-04-22 23:38 被阅读0次

线性表

n个相同类型元素组成的有限序列

  • 数组
  • 链表

数组

数组的特点:

  • 系统根据用户需求,开辟连续的一定大小的内存空间
  • 内容为连续存储

数组的优点:

  • 数组可按索引查找
  • 随机读取元素,数组效率很高

数组的缺点:

  • 数组开辟的空间是固定的,未使用的内存会造成空间浪费
  • 由于分配的空间必须连续,数据插入和删除操作更加耗时

链表

链表的特点:

  • 链表的基本组成是节点,每一个节点中,存储着数据和下一个数据的内存地址
  • 内容为链式存储

链表的优点:

  • 可以快速进行数据的增删改
  • 链表使用的空间是动态分配,使用时才分配新空间,不会造成内存浪费

链表的缺点:

  • 读取数据需要按节点依次向下查找

数组和链表的耗时统计

操作 数组 链表
读取 O(1) O(n)
插入 O(n) O(1)

注:在代码实现过程中,链表仅插入这一步操作时间复杂度为O(1)

  • 二叉树

二叉树

二叉树分类:

  • 满(真)二叉树
  • 完全二叉树

满(真)二叉树

  • 特点:所有节点的度要么为0,要么为2

完全二叉树

  • 特点:叶子节点只会出现最后2层,且 最后1层 的叶子节点都 靠左 对齐
  • 计算总节点数:
    • 假设叶子节点个数为n0,度为1的节点个数为n1,度为2的节点个数为n2;
      总节点个数 n = n0 + n1 + n2,且 n0 = n2 + 1;
      得 n = 2n0 + n1 -1
    • 完全二叉树的n1要么为0,要么为1
    • n1为1时,n = 2n0,n为偶数

相关文章

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • py基础

    5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

  • 01. 数据结构与算法绪论

    一、数据结构 1. 什么是数据结构 2. 数据结构的分类 3. 常用的数据结构 4. 数据结构的应用表现 二、算法...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • C#之数据结构(上)

    数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构有: 线性表、栈、队列、串、数组...

网友评论

      本文标题:数据结构

      本文链接:https://www.haomeiwen.com/subject/qjdjthtx.html