线性表的顺序存储结构--数组(顺序表)、栈、队列

线性表

 

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

优点:  ①可以随机存取

          ②空间利用率高

          ③结构简单

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

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

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

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

 

[先进后出,后进先出]

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

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

栈的实现:增设一指针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得到余数)

posted @ 2019-10-24 15:16  小帆敲代码  阅读(572)  评论(0编辑  收藏  举报