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得到余数)

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/code-fun/p/11732367.html
Copyright © 2011-2022 走看看