当前位置: 首页 > news >正文

低价网站访问网站出现目录

低价网站,访问网站出现目录,商城顺德网站建设,如何搭建购物网站目录 栈 栈的复杂度 空间复杂度O(1) 时间复杂度O(1) 栈的应用 1、栈在函数调用中的应用; 2、栈在求表达式的值的应用: 栈的实现 栈 后进先出,先进后出,只允许在一端插入和删除 从功能上,数组和链表可以代替栈…

目录

栈的复杂度

空间复杂度O(1)

时间复杂度O(1)

栈的应用

1、栈在函数调用中的应用;

2、栈在求表达式的值的应用:

栈的实现


        后进先出,先进后出,只允许在一端插入和删除

从功能上,数组和链表可以代替栈。特定的数据结构是对特定场景的抽象,而且数组或链表暴露接口过多,自然容易出错。

符合先进后出特性的数据,可以使用栈

栈的形式

  • 1、顺序栈 数组实现
  • 2、链式栈 链表实现

栈的复杂度

空间复杂度O(1)

        出栈和入栈只需要两个临时变量存储空间,空间复杂度O(1),存n个数据,不能说时间复杂度O(n),因为n个空间是必须的。出来原本的空间,算法还需要额外的存储空间

时间复杂度O(1)

        时间复杂度 O(1),插入在满的时候会退化O(n),平摊也是O(1)

动态扩容的栈

栈满,申请更大数组,将原来数据搬到新数组中。

栈的应用

1、栈在函数调用中的应用;

        为什么函数调用要用“栈”来保存临时变量呢?用其他数据结构不行吗? 其实,我们不一定非要用栈来保存临时变量,只不过如果这个函数调用符合后进先出的特性,用栈这种数据结构来实现,是最顺理成章的选择。

        从调用函数进入被调用函数,对于数据来说,变化的是什么呢?是作用域。所以根本上,只要能保证每进入一个新的函数,都是一个新的作用域就可以。而要实现这个,用栈就非常方便。在进入被调用函数的时候,分配一段栈空间给这个函数的变量,在函数结束的时候,将栈顶复位,正好回到调用函数的作用域内。

2、栈在求表达式的值的应用:

编译器通过两个栈来实现。一个存值,一个存操作数。

比较运算符栈顶元素的优先级,高则将当前运算符压如栈;低或者相同,从运算符栈中取出栈顶运算符。从操作数中取出两个数,进行计算,计算后再将结果压入操作数栈,继续比较。

栈的实现

typedef struct _array_stack
{int size;int pos;int *array;
}arrayStack;   arrayStack *arrayStack_create(int size)
{arrayStack *pStack = NULL;pStack = (arrayStack *)malloc(sizeof(arrayStack));if(pStack == NULL)return NULL;pStack->size = size;pStack->pos = -1;pStack->array = (int *)malloc(sizeof(int)*size);if(pStack->array ==NULL){free(pStack);return NULL;}return pStack;
}int arrayStack_pop(arrayStack *pStack)
{int data = 0;if(arrayStack_is_empty(pStack)){return -1;}data = pStack->array[pStack->pos];pStack->pos--;return data;
}
int arrayStack_push(arrayStack *pStack,int data)
{if(arrayStack_is_full(pStack))return;pStack->pos++;pStack->array[pStack->pos] = data;return 0;
}

http://www.yayakq.cn/news/663847/

相关文章:

  • 免费网站建设哪家好wordpress好用的编辑器代码
  • 网站做软件网站使用了seo优化工具怎么检测
  • 佛山顺德做网站wordpress 本地 慢
  • 网站开发记入什么会计科目天河建设网站平台
  • 专业个人网站p2p万能搜索种子
  • 网站开发难不难wordpress出现500错误
  • 从留言板开始做网站做网站个体户经营范围
  • 辽宁网站备案要多久kocool网站开发
  • 大作设计网站企业网站建设外包服务合同
  • 金华网站建设哪个公司好点seo关键字优化教程
  • 珠海横琴天聚建设工程有限公司网站wordpress下载管理插件
  • 自助建网站的平台 数据库网站后台后缀名
  • 免费外贸自建站做鲜花配送网站需要准备什么
  • 企业网站管理系统的运维服务网站代码预览器
  • 国外做建筑平面图的网站下载并安装百度地图
  • 机械东莞网站建设0769自己做家装设计网站
  • 网站整体建设方案建设银行苏州网站
  • 网站建设ppt网站开发完整项目案例
  • 大型门户网站 代码新东方在线网上课程
  • 事务所网站制作方案wordpress 调用用户头像
  • 栾城住房和城乡建设局网站做网站可以用微软雅黑字体么
  • 建设用地规划查询网站网站建设 开票
  • 什么是微网站系统制作app需要网站吗
  • 网站版权文字网络营销带来的效果
  • 新余集团网站建设天眼查企业查询赵宝荣
  • 山东省菏泽市城乡建设局网站企业展厅设计公司的区别在哪
  • 凡科网站建设免费网络电话无限打不用充值
  • 网站建设一般怎么付款个人小程序开发
  • 网站开发做什么的宁波网络公司联系电话
  • 白云做网站的公用什么网站做封面最好