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

村镇建设年度报表登录网站axrue怎么做网站的原型图

村镇建设年度报表登录网站,axrue怎么做网站的原型图,手机网站适配代码,重庆响应式网站建设公司目录 栈的概念及结构 栈的实现 创建栈 栈的初始化 入栈 出栈 取出栈顶数据 判断栈是否为空 有效数据个数 栈的销毁 全代码 stack.h stack.c 应用 题目 示例 解题思路 代码实现 栈的概念及结构 栈是一种特殊的线性表#xff0c;其只允许在固定的一端进行插入…目录 栈的概念及结构 栈的实现 创建栈 栈的初始化 入栈 出栈 取出栈顶数据 判断栈是否为空 有效数据个数 栈的销毁 全代码 stack.h stack.c 应用 题目 示例 解题思路 代码实现 栈的概念及结构 栈是一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。你也可以一边入一边出。 栈顶和栈底并不是固定的这是人为决定的。 栈的实现 栈的实现一般可以使用数组或者链表实现相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。 以下的内容如果你对顺序表的实现熟悉的话就很简单。 创建栈 栈的创建需要有指向动态数组指针栈顶数据下标和容量。 typedef int STDataType;typedef struct Stack {STDataType* arr;//指向动态数组指针int top;//栈顶数据下标int capacity;//容量 }ST;栈的初始化 将arr置为空指针top置为-1capacity置为0。 //初始化 void STInit(ST* pst) {assert(pst);pst-arr NULL;pst-top -1;pst-capacity 0; } 这里的top为什么要是-1呢      一般来说top应该也是0这里是-1是为了确保top是栈顶数据的下标。当然了你要是想写0也是可以的。 入栈 入栈又称压栈进栈。 首先要判断容量是否够用如果不够用的话就扩容。然后再把数据塞入即可。 //入栈 void STPush(ST* pst, STDataType x) {assert(pst);if (pst-top 1 pst-capacity){pst-capacity pst-capacity 0 ? 4 : pst-capacity * 2;STDataType* p (STDataType*)realloc(pst-arr, sizeof(STDataType) * pst-capacity);if (p NULL){perror(realloc);return;}pst-arr p;}pst-arr[pst-top] x; } 注意这里要前置如果后置就会造成非法访问。如果top是0就要后置了。 出栈 这里要另外判断一下栈是否为空。然后只要让top--即可。 //出栈 void STPop(ST* pst) {assert(pst);assert(pst-top -1);pst-top--; } 取出栈顶数据 这里也要判断一下栈是否为空。然后返回下标top对应的数据即可。 //取出出栈顶数据 STDataType STTop(ST* pst) {assert(pst);assert(pst-top -1);return pst-arr[pst-top]; } 判断栈是否为空 直接返回pst-top-1即可。 //判断栈是否为空 bool STEmpty(ST* pst) {assert(pst);return pst-top -1; } 该函数类型要是布尔类型。      如果top-1则返回true否则返回false。 有效数据个数 直接返回top1即可。 //有效数据个数 int STSize(ST* pst) {assert(pst);return pst-top 1; } 栈的销毁 用free销毁arr并将它置为空指针。其它的置为初始化值即可。 //销毁 void STDestroy(ST* pst) {assert(pst);free(pst-arr);pst-arr NULL;pst-top -1;pst-capacity 0; } 全代码 stack.h #include stdio.h #include stdlib.h #include stdbool.h #include assert.htypedef int STDataType;typedef struct Stack {STDataType* arr;int top;int capacity; }ST;//初始化 void STInit(ST* pst);//销毁 void STDestroy(ST* pst);//入栈 void STPush(ST* pst, STDataType x);//出栈 void STPop(ST* pst);//取出出栈顶数据 STDataType STTop(ST* pst);//判空 bool STEmpty(ST* pst);//获取数据个数 int STSize(ST* pst); stack.c #include stack.h//初始化 void STInit(ST* pst) {assert(pst);pst-arr NULL;pst-top -1;pst-capacity 0; }//入栈 void STPush(ST* pst, STDataType x) {assert(pst);if (pst-top 1 pst-capacity){pst-capacity pst-capacity 0 ? 4 : pst-capacity * 2;STDataType* p (STDataType*)realloc(pst-arr, sizeof(STDataType) * pst-capacity);if (p NULL){perror(realloc);return;}pst-arr p;}pst-arr[pst-top] x; }//出栈 void STPop(ST* pst) {assert(pst);assert(pst-top -1);pst-top--; }//取出栈顶数据 STDataType STTop(ST* pst) {assert(pst);assert(pst-top -1);return pst-arr[pst-top]; }//判断栈是否为空 bool STEmpty(ST* pst) {assert(pst);return pst-top -1; }//有效数据个数 int STSize(ST* pst) {assert(pst);return pst-top 1; }//销毁 void STDestroy(ST* pst) {assert(pst);free(pst-arr);pst-arr NULL;pst-top -1;pst-capacity 0; } 应用 题目 该题链接 https://leetcode.cn/problems/valid-parentheses/description/ 示例 解题思路 这题根据栈的后进先出和边入边出的特性可以解决。 创建一个栈只让左括号入栈让右括号与栈里的数据匹配。如果匹配成功让左括号出栈继续该操作直至字符串遍历完。如果匹配不成功则直接退出。 有几个要注意的点 字符串只有右括号字符串只有左括号或只剩左或右括号arr是int的类型要把它改成char类型 代码实现 bool isValid(char* s) {ST st;STInit(st);while(*s){if(*s ( || *s [ || *s {){STPush(st, *s);}else{if(st.top -1)//字符串只有右括号{STDestroy(st);return false;}STDataType top STTop(st);if(*s ) top ! ( || *s ] top ! [ || *s } top ! {){STDestroy(st);return false;}STPop(st);}s;}bool ret STEmpty(st);//字符串只有左括号或只剩左或右括号STDestroy(st);return ret; }
http://www.hkea.cn/news/14555066/

相关文章:

  • 做网站数据库要建什么表地产集团网站建设
  • php网站开发学习长沙网站托管哪家好
  • 学校网站设计论文网站制作的知识
  • 长安镇做网站网站建设做网站怎么做
  • 广州seo地址定西seo
  • 微信网站开发软件怎么给网站做友情链接
  • 校园网站建设结论网站扁平化结构和树形结构
  • 嘉兴房地产网站建设深圳广告公司前十强
  • 做配资网站多少钱有创意的设计作品
  • 网站后台首页设计川畅咨询 网站建设
  • 网站首页布局设计模板十堰微网站建设费用
  • 开源php网站开发wordpress页面链接地址
  • 东莞南城网站制作公司洛阳网站建设电话
  • 如何自己搭建一个企业网站网站在线问答怎么做
  • 情人节给女朋友做网站很久以前做相册mv的网站
  • 便利的菏泽网站建设企业品牌网站营销
  • 计算机编程与网站建设114啦网址导航官网
  • 现在收废品做哪个网站好口碑好的邯郸网站建设
  • 建设厅网站ca验证失败兰州搜狗推广
  • 株洲网站制作公司有哪些娱乐网站开发多少钱
  • 手机网站源码带后台wap网站生成
  • 常用网站建设工具腾讯朋友圈广告代理
  • 吐槽做网站东莞市领导班子
  • 十堰网站建设培训wordpress主页主题
  • 桃城网站建设价格上海网站免费制作
  • flash企业网站模板php网站突然不能访问
  • 忻州市建设厅网站首页网页制作代码html
  • 湖南网站建设工作室wordpress改网站信息
  • 长春做网站优化价格小程序打包成app
  • 怎样做网站的链接室内设计学校前十