2020-04-10栈和队列

一.栈与队列

1.栈结构

修改原则:FILO先进后出


2020-04-10栈和队列_第1张图片
栈结构
2.队列的结构

修改原则:FIFO
(线性结构中的特殊结构),


2020-04-10栈和队列_第2张图片
队列结构

//逻辑结构:线性结构,集合结构,树形结构,图形结构
//物理结构:顺序存储结构,链式存储结构


二.栈的基本实现:

实现方法1:顺序结构实现

实现方法2:链式结构实现
(c语言中 目标是变量用点语法,如果是指针用->)


2.栈和递归
递归(直接或间接调用自己)
使用递归的原因:简洁,可能影响性能
使用递归的三个情况:
1.定义是递归的:数学定义(阶乘/斐波拉契数列)
2.数据结构是递归的:(链表)
3.问题是递归的:

分治法:
1.大问题拆成小问题,解决方法非常相似
2.简化问题
3.需要有递归出口,递归边界

递归工作栈:

栈空间

执行函数前:(系统操作的事情)

1.传递 返回地址 和 参数
2.局部变量分配空间
3.控制交给被调用函数
4.返回时,保存结果返回,主动释放局部变量,控制权返回

非要用栈的时候:图层,navagationController

二.队列

问题:假溢出

你可能感兴趣的:(2020-04-10栈和队列)