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

移动网站转码合肥优化网站

移动网站转码,合肥优化网站,网站浮动窗口怎么设置,江门建站栈的概念及结构 栈#xff1a;一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO#xff08;Last In First Out#xff09;的原则。 压栈#…栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。 出栈栈的删除操作叫做出栈。出数据也在栈顶。 栈的定义 typedef int STDataType; typedef struct Stack {STDataType* _a;//数组int _top; // 栈顶,类似顺序表中的_sizeint _capacity; // 容量 }Stack; 对栈的操作 栈初始化 _top可以初始化为0此时栈顶元素是_top-1的位置 _top也可以初始化为1此时栈顶元素就是_top的位置 初始化为0 初始化为1 // 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-_a NULL;ps-_capacity 0;ps-_top 0; } 压栈入栈 // 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);//扩容if (ps-_capacity ps-_top){int newcapacity ps-_capacity 0 ? 4 : 2 * (ps-_capacity);STDataType* tmp (STDataType*)realloc(ps-_a, newcapacity * sizeof(STDataType));if (tmp NULL){perror(realloc fail);return;}ps-_a tmp;ps-_capacity newcapacity;}ps-_a[ps-_top] data; } 出栈 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));ps-_top--; } 取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);return ps-_a[ps-_top-1]; } 判断栈是否为空 bool StackEmpty(Stack* ps) {assert(ps);return ps-_top 0; } 栈的长度 _top初始化为0此时的_top的大小刚好就是栈的长度 int StackSize(Stack* ps) {assert(ps);return ps-_top; } 栈销毁 void StackDestroy(Stack* ps) {assert(ps);ps-_capacity ps-_top 0;free(ps-_a);ps-_a NULL; } 完整总代码 头文件 #pragma once #includestdio.h #includeassert.h #includestdlib.h #includestdbool.h // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* _a;//数组int _top; // 栈顶,类似顺序表中的_sizeint _capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(Stack* ps); // 获取栈顶元素 STDataType StackTop(Stack* ps); // 获取栈中有效元素个数 int StackSize(Stack* ps); // 检测栈是否为空如果为空返回非零结果如果不为空返回0 bool StackEmpty(Stack* ps); // 销毁栈 void StackDestroy(Stack* ps);函数定义 #includeStack.h // 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-_a NULL;ps-_capacity 0;ps-_top 0; } // 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);//扩容if (ps-_capacity ps-_top){int newcapacity ps-_capacity 0 ? 4 : 2 * (ps-_capacity);STDataType* tmp (STDataType*)realloc(ps-_a, newcapacity * sizeof(STDataType));if (tmp NULL){perror(realloc fail);return;}ps-_a tmp;ps-_capacity newcapacity;}ps-_a[ps-_top] data; } // 出栈 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));ps-_top--; } // 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);return ps-_a[ps-_top-1]; } // 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-_top; } // 检测栈是否为空如果为空返回非零结果如果不为空返回0 bool StackEmpty(Stack* ps) {assert(ps);return ps-_top 0; } // 销毁栈 void StackDestroy(Stack* ps) {assert(ps);ps-_capacity ps-_top 0;free(ps-_a);ps-_a NULL; } 测试 #includeStack.h void test() {Stack s;StackInit(s);StackPush(s, 1);StackPush(s, 2);StackPush(s, 3);StackPush(s, 4);while (StackSize(s)0){printf(%d , StackTop(s));StackPop(s);}StackDestroy(s); } int main() {test();return 0; }欢迎各位一起学习交流~
http://www.w-s-a.com/news/370828/

相关文章:

  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站
  • 网站开发信息平台项目总结企业网站如何推广
  • 网站备案名称规定手机免费h5制作软件
  • 接网站建设单子的网站网页设计尺寸多大
  • 订制型网站费用做网站的问题
  • 淮阳住房和城乡建设网站桂林新闻桂林人论坛
  • 公司网站建设价格标准老版本网站开发工具
  • 门户网站开发费怎做账做网站交互demo工具
  • 中山最好的网站建设黄村网站建设价格
  • 企业网站首页应如何布局互联网营销师证书报名入口
  • 绍兴做网站哪家好篮球网站设计
  • 鹤岗市城乡建设局网站西域电商平台官网
  • 外贸网网站建设蓝色管理系统网站模版
  • 网站服务器关闭阿里巴巴logo
  • 青岛 网站制作公司乐从网站制作
  • wordpress 微网站模板怎么用wordpress 文档下载
  • ppt网站建设的目的合肥做网站找哪家好
  • wordpress站点路径redis缓存wordpress
  • 专门设计网站的公司叫什么百度 门户网站
  • 网站建设丶金手指专业旅游网站系统哪个好
  • 苏州工业园区两学一做网站成都企业排名
  • 医药网站开发wordpress境外支付
  • 营销自己的网站网站如何做标题优化
  • 玖云建站系统wordpress nodejs版本
  • 网站开发费用计入什么二级科目重庆企业网站推广
  • wordpress 菜单怎么使用方法宜春网站推广优化
  • dede 网站图标怎么自学建筑设计
  • 河北斯皮尔网站建设做微信小程序和做网站