zoukankan      html  css  js  c++  java
  • 线性表的顺序存储结构--数组(顺序表)、栈、队列

    线性表

    顺序存储结构--数组(顺序表)

    优点:  ①可以随机存取

              ②空间利用率高

              ③结构简单

    缺点:①需要一片连续的存储空间

         ②插入删除会引起大量的元素移动,操作不便

              ③预分配空间可能不足也可能浪费

    解决方法:限定一定条件下线性表--插入删除在固定的位置--栈和队列

    [先进后出,后进先出]

    特征:①在一端(栈顶)进行插入、删除操作

         ②一般用来容纳已经接受但不处理的信息

    栈的实现:增设一指针top指向当前栈顶位置

    栈的应用:①十进制转八进制

         ②矩阵连乘计算量

         ③方法的调用过程:a,保存返回地址b.局部变量值得保存

    队列[先进先出]

    特征:①总是在一端插入元素,另一端删除元素

    队列的实现:

      增设第一个元素的前面的指针front

      增设指向最后一个元素的指针rear‘

    循环队列:通过模运算,成为循环队列

    队空:front==rear

    队满:(rear+1)%m==front(正常情况下,应是front==rear,但是front==rear已经是判断队空的条件,无法区分队空还是队满,需要再去使用变量标识,在操作时需要判断造成时间上的浪费,不如浪费一个空间,即若rear+1==front时,又因为是循环数组所以(rear+1)%m==front,有种用空间换取时间的感觉)

    队满时的元素个数:m-1

    计算元素个数:(rear-front+m)%m(+-一个m时不改变求余的,但是如果rear-front<0时,可以通过+m得到余数)

  • 相关阅读:
    正则表达式
    公司培训文档混淆的基本概念
    堆和栈的区别[导入]
    一個textlist控件(左右兩個文本框)。
    深入浅出之正则表达式(一)
    公司培训文档-c#基础学习
    问题
    [转]CStdioFile中文问题
    VB用户控件制作讲解与实例用户控件属性或函数的描述信息如何写入程序
    什么是表驱动
  • 原文地址:https://www.cnblogs.com/code-fun/p/11732367.html
Copyright © 2011-2022 走看看