美文网首页
数据结构

数据结构

作者: MRNAN_ | 来源:发表于2017-09-16 23:15 被阅读7次

数据存储有几种

  • 线性

    • 连续存储 【数组】

      • 优点:

        存取速度很快。
      • 缺点:

        事先需要知道数组的长度。
        插入删除元素的效率极低。
        空间通常是有限制的。
        需要大块连续的内存块。
    • 离散存储 【链表】

      • 优点:

        空间没有限制。
        插入删除元素速度很快。
      • 缺点:

        存取速度很慢。
    • 线性结构的应用 【栈】

      • 定义:

      一种可以实现“新进后出”的存储结构。
      • 分类:

        • 静态栈。【以数组为内核的栈, 就是静态栈, 静态栈里面各个元素的物理内存地址是连续的】
        • 动态栈。【相应地, 以链表为内核的栈就是动态栈, 栈里面的元素是用尾部指针来联系的】
      • 算法:

        • 出栈。
        • 压栈。
      • 应用:

        • 函数调用。
    • 线性结构的应用【队列】

      • 定义:

      一种可以实现“先进先出”的存储结构。
      • 分类:

        • 链式队列。【链表实现】
        • 静态队列。【数组实现】
          静态队列通常都必须是循环队列
循环队列的讲解:
1. 静态队列为什么必须是循环队列。
2. 循环队列需要几个参数来确定。【两个参数:front(头) rear(尾)】
3. 循环对列各个参数的含义。【两个参数不同场合有不同含义】
    (1)队列初始化:
      front和rear的值都是零。
    (2)队列非空:
      front代表队列的第一个元素。
      rear代表队列的最后一个有效元素的下一个结点。
    (3)队列为空:
      front和rear的值相等,但不一定为零。
4. 循环队列入队伪算法讲解。
    入栈伪算法:
        入栈的时候,尾部需要加一位。直接 rear + 1 这样的写法是错误的,正确的写法应该是 rear = (rear +  1) % 数组的长度。
5. 循环队列出队为算法讲解。
     出栈的伪算法:
        出栈的时候,是从头部先出,所以front 会移到下一个位置。写法类似于入栈。直接 front + 1 是错误的,正确的写法应该是: front = (front + 1) % 数组的长度。
6. 如何判断循环队列是否为空。
   如果 front 与 rear的值相等,则循环对列 为空。
7. 如何判断循环队列是否已满。
    两种方式:
      1.多增加一种表标识参数。
     2. 少用一种元素,判断front 和 rear 是否相邻【通常使用这种方式】。伪算法表示:if((rear + 1) % 数组长度  == front)
{
    已满。
}

大话数据结构里面在讲循环队列的时候的图示还是 顺序存储的图,个人感觉还是郝斌老师的图比较形象,直接以圆形的方式来演示。

相关文章

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