第3章 栈和队列

一.栈和队列

栈和队列都属于线性结构,都是线性表的一种。其特点是栈和队列支持的操作是线性表的一个子集。

 

二.栈

1.栈是先进后出(Last In First Out)的线性表。

2.一般用一段连续内存空间作为存储.在这片空间上设置2个指针一个整形变量,其中base指向该空间的第一个存储单元,top指向下一个空单元,stacksize指示栈的长度。空栈的判定是base==top。

3.最主要的两个操作为Pop(SqlStack &S,ElemType &E)从栈内弹出一个数据存入E中,Push(ElemType &E,SqlStack &S)把E元素存入栈。

4.栈有以下应有:括号配对(左括号压栈,右括号要么与栈顶配对,此时栈顶元素出栈,要么不合法)、表达式求值(数值OPND一个栈,操作符OPTR另一个栈,设置优先级),迷宫寻路(走过的路径存入栈,走遍了离开栈),数值转换(先转换的后输出)。

 

三.队列

1.队列是先进先出(First In First Out)的线性表

2.一般用链式表示。队列头设有两个指针:front,rear.front总是指向队列最前的元素,出列的操作在此发生;rear总是指向队列最后的元素,入列的操作在此进行,空队列的判定是front==rear。

3.最主要的两个操作是EnQueue(ElemType &E,LinkQueue &Q)E元素入队列和DeQueue(ElemType &E,LinkQueue &Q)对尾元素出队列存入E中。

4.队列可以用来模拟实际生活中的排队等待模型中的队伍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值