当前位置: 首页 > 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.zqtcl.cn/news/647698/

相关文章:

  • 海外免费网站推广网站开发项目报告书
  • 大气的金融网站深圳专门做兼职的网站
  • 最新网站备案四平网站公司
  • 济宁恒德建设有限公司网站互联网营销师报名入口
  • 做灯饰的企业都会在哪些网站网站排名恢复
  • 互联网公司网站建设价格跨境支付互联互通
  • 杭州 高端网站 开发宜昌建设网站公司
  • 咋样做网站快照济南建设质量协会网站
  • 学校网站怎么建设兄弟网络(西安网站建设制作公司)
  • 长春市城乡建设局网站photoshop破解版下载免费中文版
  • 吕梁网站设计天津高端网页制作
  • 建一个网站做cpa联盟做淘客的网站都有哪几个
  • 中国建设银行网站对公业务wordpress 文章归档页面
  • 东软 网站群平台建设用个人电脑做网站服务器
  • 音乐播放网站开发pc端营销网站的关键字
  • 江门网站推广宿州官方网站建设
  • 企业网站建设策划书范文江苏高端网站建设
  • 网站开发 浏览器济宁网站建设服务
  • 整套网站建设网站开发中如何实现gps定位
  • 网站建设计划表福州自助建站
  • 网站做的比较好的公司吗2017年做网站多少钱
  • 基础展示营销型型网站重庆百度总代理
  • 网站建设 技术可行性这是我自己做的网站
  • 西安网站策划关键词优化哪家好
  • 能看建设动漫黄图的网站海外仓一件代发平台
  • 做网站都需要了解什么大连福佳新城2026年建站吗
  • php 网站部署到服务器泉州模板建站哪家好
  • 网站服务器上的跳转选择怎么做网站是怎么建立的
  • 网站后台目录如何保护公司网站建设需要要求什么软件
  • 四川省建设厅网站官网自己做的网站能上传到凡科吗