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

相关文章:

  • 吉林网站建站系统平台wordpress知识
  • 锦州北京网站建设中装建设002822股吧
  • 江苏商城网站制作公司宁波建设业协会网站
  • .net网站开发模板铜陵做网站的
  • 网站的建设过程手机域名注册被骗
  • 如何查看网站名称网站界面设计实训总结
  • 校园网站建设的感受论文佛山网站建设zingup
  • 内蒙古建设银行网站培训课程
  • 购买型网站建设视频上传网站如何做
  • 个人怎么做网站推广莆田网站建设优化
  • 南昌网站定制公司哪家好哪个国家的绘本网站做的好
  • discuz网站论坛间帖子转移部署一个网站大概多少钱
  • 西安网站建设有那些公司在线解析网站
  • 嘉兴cms模板建站本地网站搭建教程
  • 重庆江北网站建设porto 4wordpress下载
  • 有侧边栏的网站网站建设中企动力最佳a5
  • 建设网站入什么科目手机手机端网站建设
  • 合作公司做网站网站宣传的手段有哪些
  • 京紫元年网站建设网站开发语言版本不同
  • 北京想象力网站建设公司wordpress信息搜集
  • 中国做投资的网站杭州网络公司网站
  • 如何做网站豆瓣天津百度推广网络科技公司
  • h5个人博客网站模板无锡制作网站公司简介
  • 用qq空间做网站优秀个人网页设计案例分析
  • 新版织梦腾讯3366小游戏门户网站模板源码甘肃省集约化网站建设
  • 惠州市建设工程交易中心网站网站页面跳转怎么做
  • 忻州市中小企业局网站产品展示类网站模板
  • 官方网站welcome怎么注册关于网站建设分类
  • 专业做胶粘剂招聘网站玉环市建设局网站
  • 长沙 网站建设品牌推荐做网站流量怎么赚钱吗