《数据结构》--栈和队列

一章讲的主要是栈和队列。从数据结构的角度上说,栈和队列也是线性表,只不过是操作受限的线性表我觉的这句话很有意思,就好像说现在的我还是以前的我,只不过我随着长大好像也开始操作受限了,但是我还是我,可是为什么会这样呢?

虽然这一章仍旧是线性表,不过抽象的程度上有了加深,所以我在这节课上学的稍显吃力。枯了;

 

老习惯,先奉上图。

 

 

其实在于理论课我觉得是听得头头是道,津津有味。可是一到实操我好像就是一脸懵逼的,看来自己还是太弱了,没有一点点的积累和经验。

好吧,下面补充一下关于栈和队列的一些知识点。

#栈:

1、栈分为链栈和顺序栈;

2、顺序栈需要有栈顶指针和栈底指针;

3、顺序栈缺点是受到最大空间的限制。所谓栈溢出攻击也就来源于此;

4、链栈是没有必要设置头结点的,因为在删除操作有无头结点都要考虑边界与非边界的问题,而在插入操作时,无头结点的链栈可以保持边界与非边界代码的一致性,而有头结点则不行;

5、链栈基本不需要考虑栈满的问题。

#队列:

1、存储类别和顺序栈相似都是占用一片连续的的存储单元;

2、并且在队列上约定-->初始化创建空队列是=时,令front = near =0,每当插入新的队列尾元素时,尾指针rear增加1....在此类插入删除的操作中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置;

3、So,对于循环队列不能以头尾指针的值是否相同来辨别队列空间是“满”还是“空”。

##栈和队列:

1、出栈出队前都要判断是否为空,入队入栈前都要判断是否为满;

2、栈和队列插入操作都是限定在表尾进行而删除操作就不同->栈的删除操作在表尾进行,队列的删除操作在表头进行

3、暂时没想到。

 

 

实践操作太弱,建个链表都要半天。

 

写个博客的目标还是有达到的;

接下来就是慢慢提升自己的编程实践操作;

原来我也是栈和队列。

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/jyf2018/p/10630384.html