栈Stack
1.栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
2.压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
3.出栈:栈的删除操作叫做出栈。出数据在栈顶。
4.栈的应用:
(1)改变元素的次序。
(2)括号的匹配
(3)四则混合运算 例:12+10*(5-2) 后缀表达式(RPN) 12 10 5 2 - * +
(4)栈---->将递归转化为循环
5.栈空间和栈数据结构的区别:
栈空间:指具有特殊功能的内存空间----具有后进先出的特性
栈数据结构:一种具有后进先出的数据结构
6.栈的方法:
队列Queue
1.队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out)
2.入队列:进行插入操作的一端称为队尾
3.出队列:进行删除操作的一端称为队头
4.用循环队列解决假溢出
5.怎样判断循环队列是空还是满:
(1)少用一个存储位置:当rear(队尾)+1== front(队头)时
(2)设计一个标记bollean flag = false
入队列:在rear位置尾插元素 flag = true
出队列:front往后移动 flag = false
(3)计数count ---- 记录队列中有效元素的个数
空队列:count = 0 ; 满队列:count = N (队列的空间)
6.队列的方法: