美文网首页
数据结构

数据结构

作者: Jey | 来源:发表于2020-05-15 17:26 被阅读0次

什么是数据结构

数据结构是计算机存储、组织数据的方式,是数据之间存在着某种关联的数据元素的集合。

常见的数据结构:数组、栈、队列、链表、树、图、字典树、散列表(哈希表)

1. 数据结构种类-----
  1. 线性数据结构:元素之间存在着一对一的关系
  • 栈、队列、数组和线性表(顺序表和链表)
  1. 树形结构:跟上一层的某个节点有关联,并且可以和下层多个节点有关联的数据
  • 树、堆
  1. 图形结构:允许节点之间互相关联

  2. 散列表(哈希表):是根据键(Key)而直接访问在内存存储位置的数据结构。它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。

2. 线性数据结构-----

a. 数组和链表

数组:存放着一组相同类型的数据,需要预先指定数组的长度,不能动态地增减数据。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。

链表:链表是C语言中一种应用广泛的结构,它采用动态分配内存的形式实现,链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。链表还包含一个头指针,它指向链表的第一个元素,链表查找是根据next指针找到下一个元素

b. 数组和链表的区别

(1)数组事先定义长度,不能动态增减数据;链表动态地进行存储分配,可以适应数据动态地增减的情况

(2)数组从栈中分配空间,申请方便,查找速度快,自由度小;链表从堆中分配空间,自由度大,申请管理比较麻烦

(3)数组在内存中是连续存储的,可以利用下标索引进行随机访问;链表是链式存储结构,在访问元素的时候只能通过线性的方式由前到后顺序访问,所以访问效率比数组要低

c. 数组和链表的优缺点

(1) 优点:
数组:方便,查找速度快
链表:大小不固定,灵活扩展,插入删除速度快(改变指向的指针即可),内存利用率高。

(2) 缺点:
数组:插入删除效率低(动了需要移动其他位置),对内存要求高,需要连续内存,大小固定
链表:每次查找须从第一个指针开始遍历

d. 栈和队列

两者相似,队列是另一种顺序存储元素的线性数据结构。
栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。

3. 哈希表-----

把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。

优点:对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快定位。结合了数组和链表的优点

iOS中 NSDictionary和NSMutableArray底层实现原理就是哈希表,原理

4. 排序算法-----

参考:iOS排序算法
lua快速排序

相关文章

  • 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/oxpcohtx.html