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

网站做优化公司公司起名吉祥字大全

网站做优化公司,公司起名吉祥字大全,建设一个收入支出持平的网站,成都建模培训机构目录 1.栈1.1栈的概念及结构1.2 栈的实现1.1.0 栈的初始化1.1.1 销毁1.1.2 入栈1.1.3 出栈1.1.4 获取栈中有效元素个数1.1.5 检测栈是否为空#xff0c;如果为空返回非零结果#xff0c;如果不为空返回01.1.6 获取栈顶元素1.1.7 验证 附录 栈的C语言实现源码.h文件.c文件test… 目录 1.栈1.1栈的概念及结构1.2 栈的实现1.1.0 栈的初始化1.1.1 销毁1.1.2 入栈1.1.3 出栈1.1.4 获取栈中有效元素个数1.1.5 检测栈是否为空如果为空返回非零结果如果不为空返回01.1.6 获取栈顶元素1.1.7 验证 附录 栈的C语言实现源码.h文件.c文件test.c文件 1.栈 1.1栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。出栈栈的删除操作叫做出栈。出数据也在栈顶 1.2 栈的实现 在VS2022中新建一个工程 stack20250308.h栈的类型定义、接口函数声明、引用的头文件stack20250308.c栈的接口函数的实现stackTest20250308.c主函数、测试各个接口功能 实现接口 // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top;int capacity; }ST;// 初始化栈 void STInit(ST* ps); //销毁 void STDestroy(ST* ps); // 入栈插入 void STPush(ST* ps, STDataType x); // 出栈删除 void STPop(ST* ps); //获取栈中有效元素个数 int STSize(ST* ps); //检测栈是否为空如果为空返回非零结果如果不为空返回0 bool STEmpty(ST* ps); //获取栈顶元素 STDataType STTop(ST* ps);1.1.0 栈的初始化 // 初始化栈 void STInit(ST* ps) {assert(ps);ps-a (STDataType*)malloc(sizeof(STDataType)*4);if (ps-a NULL){perror(STInit::malloc fail!);return;}ps-capacity 4;ps-top 0;//top是栈顶元素的下一个位置//ps-top -1;//top是栈顶元素位置 }1.1.1 销毁 //销毁 void STDestroy(ST* ps) {assert(ps);free(ps-a);ps-a NULL;ps-capacity 0;ps-top 0; }1.1.2 入栈 // 入栈插入 void STPush(ST* ps, STDataType x) {assert(ps);if (ps-top ps-capacity){STDataType* tem (STDataType*)realloc(ps-a,sizeof(STDataType) * ps-capacity*2);//扩容当前的2倍if (ps-a NULL){perror(STInit::relloc fail!);return;}ps-a tem;ps-capacity * 2; //修改容量}ps-a[ps-top] x;ps-top; }1.1.3 出栈 // 出栈删除 void STPop(ST* ps){assert(ps);assert(!STEmpty(ps));//检查是否为空为空就报错ps-top--;//直接--但是空栈的时候就不能继续--所以在之前进行是否为空的检查。 }1.1.4 获取栈中有效元素个数 //获取栈中有效元素个数 int STSize(ST* ps) {assert(ps);//top就是sizereturn ps-top; }1.1.5 检测栈是否为空如果为空返回非零结果如果不为空返回0 //检测栈是否为空如果为空返回非零结果如果不为空返回0 bool STEmpty(ST* ps) {assert(ps);return ps-top 0; }1.1.6 获取栈顶元素 //获取栈顶元素 STDataType STTop(ST* ps) {assert(ps);return ps-a[ps-top - 1];//top是最后一个元素的下一个位置所以-1 }1.1.7 验证 验证的时候我们栈是不能打印的我们需要一个一个出栈打印栈顶元素 void STTest() {ST st;STInit(st);STPush(st, 1);STPush(st, 2);STPush(st, 3);STPush(st, 4);STPush(st, 5);while (!STEmpty(st)){printf(%d , STTop(st));STPop(st);}STDestroy(st);}插入 删除 栈有效个数验证 附录 栈的C语言实现源码 .h文件 #pragma once #includestdio.h #includestdbool.h #includestdlib.h #includeassert.h//静态的 //#define N 10 //typedef struct Stack //{ // int a[N]; // int top; // //}Stack;// 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top;int capacity; }ST; // 初始化栈 void STInit(ST* ps); //销毁 void STDestroy(ST* ps); // 入栈插入 void STPush(ST* ps, STDataType x); // 出栈删除 void STPop(ST* ps); //获取栈中有效元素个数 int STSize(ST* ps); //检测栈是否为空如果为空返回非零结果如果不为空返回0 bool STEmpty(ST* ps); //获取栈顶元素 STDataType STTop(ST* ps);.c文件 #define _CRT_SECURE_NO_WARNINGS 1 #includestack20250308.h// 初始化栈 void STInit(ST* ps) {assert(ps);ps-a (STDataType*)malloc(sizeof(STDataType)*4);if (ps-a NULL){perror(STInit::malloc fail!);return;}ps-capacity 4;ps-top 0;//top是栈顶元素的下一个位置//ps-top -1;//top是栈顶元素位置 }//销毁 void STDestroy(ST* ps) {assert(ps);free(ps-a);ps-a NULL;ps-capacity 0;ps-top 0; } // 入栈插入 void STPush(ST* ps, STDataType x) {assert(ps);if (ps-top ps-capacity){STDataType* tem (STDataType*)realloc(ps-a,sizeof(STDataType) * ps-capacity*2);//扩容当前的2倍if (ps-a NULL){perror(STInit::relloc fail!);return;}ps-a tem;ps-capacity * 2; //修改容量}ps-a[ps-top] x;ps-top; } // 出栈删除 void STPop(ST* ps){assert(ps);assert(!STEmpty(ps));//检查是否为空为空就报错ps-top--;//直接--但是空栈的时候就不能继续--所以在之前进行是否为空的检查。 }//获取栈中有效元素个数 int STSize(ST* ps) {assert(ps);//top就是sizereturn ps-top; } //检测栈是否为空如果为空返回非零结果如果不为空返回0 bool STEmpty(ST* ps) {assert(ps);return ps-top 0; } //获取栈顶元素 STDataType STTop(ST* ps) {assert(ps);return ps-a[ps-top - 1];//top是最后一个元素的下一个位置所以-1 }test.c文件 #define _CRT_SECURE_NO_WARNINGS 1 #includestack20250308.hvoid STTest() {ST st;STInit(st);STPush(st, 1);STPush(st, 2);STPush(st, 3);STPush(st, 4);STPush(st, 5);STPop(st);STPop(st);int size STSize(st);printf(栈有效元素为%d\n, size);while (!STEmpty(st)){printf(%d , STTop(st));STPop(st);}STDestroy(st); }int main() {STTest();return 0; }
http://www.pierceye.com/news/647698/

相关文章:

  • seo网站排名软件飞机网页设计实训报告
  • 禹城做网站做网站的教科书
  • 基木鱼建站公众号怎么做网站
  • 无水印做海报的网站百度技术培训中心
  • 如何在阿里云上做网站现在最流行的网站开发工具
  • 济宁网站建设联系方式漳州本地网
  • 口腔网站建设wordpress顶部提示
  • 葫芦岛做网站公司如皋网站开发公司
  • 国外开源 企业网站服务好质量好的网站制作
  • sql网站的发布流程品牌建设是什么意思
  • 营口网站建设价格江苏住房和建设厅网站
  • 网站稳定性不好的原因打金新开传奇网站
  • 做网站怎么上传图片厦门建站网址费用
  • 网站设计方案和技巧做设计有必要买素材网站会员吗
  • 成都制作网站软件网站别人帮做的要注意什么东西
  • 徐州建筑网站建网站要自己买服务器吗
  • 网站订单系统模板专业的做网站公司
  • 怎么做加盟美容院网站黄骅港开发区
  • 品牌高端网站制作官网做网站用的小图标
  • 成都网站设计合理柚v米科技泉州建设公司
  • 网页制作与网站建设完全学习手册软件下载网站怎么做
  • linux系统网站空间如何分析网站关键词
  • 以下属于网站页面设计的原则有查询网站空间商
  • 建设银行网站链接网络推广有哪些常见的推广方法
  • 常州网络公司网站图片在线制作加字
  • 漕泾网站建设建立内部网站
  • 海宁市住房和城乡规划建设局网站北京十大装饰装修公司
  • 创新的常州做网站网站页面设计公司电话
  • 建站公司见客户没话说周年庆网站要怎么做
  • 建设银行网站字体建设官方网站