《大话数据结构》----第四章---栈与队列 (学习小结)


一、栈和队列是啥 ??

是限定仅在表尾进行插入和删除操作线性表

队列是只允许在一端进行插入操作、而在另一端进行删除操作线性表

二、解释下栈的特点?

2.1 如何理解栈?

    我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Lasf In First Out)的线性表,简称LIFO结构。

     首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系。只不过它是一种待殊的线性表而已。定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是栈底。它的特殊之处就在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行。这也就使得:栈底是固定的,最先进栈的只能在栈底。

栈的插人操作,叫作进栈,也称压栈、入栈。类似子弹入弹夹,如图4-2-2

栈的删除操作,叫作出栈,也有的叫作弹栈。如同弹夹中的子弹出夹,如图4-2-3

2.2栈的链式存储结构是怎么样的?

栈的链式存储结构,简称为链栈。

2.3栈的作用是什么?(应用在什么方面呢?)

2.3.1 递归调用

栈有一个很重要的应用:在程序设计语言中实现了递归。

那么什么是递归呢?

我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数

    当然,写递归程序最怕的就是陷人永不结束的无穷递归中,所以,每个递归定义必须至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出。

实际上,栈实现了递归的存储调用。

2.3.2  四则运算表达式求值

(a)后缀(逆波兰)表示法定义:

原式:9 + (3-1)  x 3 + 10 / 2    (中缀表达式,平时常用)

(b)中缀表达式转后缀表达式:

原式:9 + (3-1)  x 3 + 10 / 2 

三、队列的特点?

3.1 队列是怎么构成的?

3.2 循环队列构成?

我们把队列的这种头尾相接顺序存储结构称为循环队列

3.3 队列的链式存储构成是怎么样的?(链队列)

队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称为链队列。

四 、栈、队列总结

猜你喜欢

转载自blog.csdn.net/u010801439/article/details/81177996