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

网站建设 自适应专业开发小程序公司

网站建设 自适应,专业开发小程序公司,比亚迪新能源汽车车型,动漫网页设计作业文章目录 Ⅰ 概念及结构1. 栈的概念2. 栈的操作 Ⅱ 基本操作实现1. 栈的定义2. 初始化栈3. 元素入栈4. 元素出栈5. 获取栈顶元素6. 获取栈中有效元素个数7. 判断栈空8. 销毁栈 Ⅰ 概念及结构 1. 栈的概念 栈#xff1a;栈是一种特殊的线性表#xff0c;其只允许在固定的一端… 文章目录 Ⅰ 概念及结构1. 栈的概念2. 栈的操作 Ⅱ 基本操作实现1. 栈的定义2. 初始化栈3. 元素入栈4. 元素出栈5. 获取栈顶元素6. 获取栈中有效元素个数7. 判断栈空8. 销毁栈 Ⅰ 概念及结构 1. 栈的概念 栈栈是一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。栈顶和栈底进行数据插入和删除操作的一端称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出的原则空栈不含任何元素的栈 2. 栈的操作 入栈在栈顶插入数据称为入栈 (压栈 / 进栈)入数据在栈顶。出栈在栈顶删除数据称为出栈 (弹栈)出数据在栈顶。 Ⅱ 基本操作实现 1. 栈的定义 栈一般用数组或链表来实现使用数组栈在入栈上会更轻松因此本文使用的为数组栈 (顺序栈)。 代码实现 // 支持动态增长的栈 typedef int STDataType;typedef struct stack {STDataType* data; //栈空间int top; //栈顶int capacity; //容量 }stack;2. 初始化栈 实现方法 先将栈空间置空栈顶置为 -1栈空间容量置为 0。 栈顶置为 -1表示指向当前元素。因为本文使用的为数组栈栈顶实际上是最后一个元素的下标如果栈顶初始化为 0 的话就没法很好的表示栈内是没有元素还是只有一个元素。 代码实现 // 初始化栈 void StackInit(stack* ps) {assert(ps);ps-data NULL; //栈空间置空ps-top -1; //栈顶ps-capacity 0; }3. 元素入栈 栈顶指针 top 指向的是当前的元素在插入新元素时需要先将栈顶指针 1指向栈顶之上。 代码实现 // 入栈 void StackPush(stack* ps, STDataType data) {assert(ps);if (ps-top 1 ps-capacity) //检查栈空间是否需要扩容{int newcapacity ps-capacity 0 ? 4 : 2 * ps-capacity;STDataType* tmp (STDataType*)realloc(ps-data, sizeof(STDataType) * newcapacity);if (NULL tmp){perror(realloc);exit(-1);}ps-data tmp;ps-capacity newcapacity;}ps-top; //栈顶指针指向栈顶之上ps-data[ps-top] data; //元素入栈 }4. 元素出栈 若栈不为空则直接将栈顶指针 - 1 即可只有在栈顶指针维护下的元素才是有效数据。 // 出栈 void StackPop(stack* ps) {assert(ps);assert(ps-top -1); //栈不为空ps-top--; //栈顶指针 - 1 }5. 获取栈顶元素 若栈不为空则直接返回栈顶指针指向的那块空间的数据即可。 // 获取栈顶元素 STDataType StackTop(stack* ps) {assert(ps);assert(ps-top -1); //栈不为空return ps-data[ps-top]; //返回栈顶元素 }6. 获取栈中有效元素个数 因为栈顶指针实际表示的是数组下标所以栈中有效数据的个数为 top1。 // 获取栈中有效元素个数 int StackSize(stack* ps) {assert(ps);return ps-top 1; }7. 判断栈空 在初始化栈时将栈顶指针初始化为 -1表示栈空可以直接用 -1 是否等于 top 来判断是否栈空。 // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(stack* ps) {assert(ps);return -1 ps-top; }8. 销毁栈 // 销毁栈 void StackDestroy(stack* ps) {assert(ps);free(ps-data); //释放栈空间ps-data NULL;ps-top ps-capacity 0; }
http://www.zqtcl.cn/news/507009/

相关文章:

  • 人才网官方网站公众号排名优化软件
  • 淘宝返利网站建设软件开发哪里学好
  • 烟台网站制作公司如何注册国外网站
  • discuz企业网站网站可以做音频线吗
  • 怎样制作网站教程哪家好制作网页的的网站
  • 网站没有织梦后台无锡seo公司网站
  • 哈尔滨住房和城乡建设厅网站公司网站建设 费用入账
  • 网站图片缩略图t恤图案设计网站
  • 对招聘网站页面设计做建议网站流量 转化率
  • 怎么样做网站注册量郴州市北湖区
  • 山东企业展厅设计公司济南网站建设优化公司
  • 什么网站免费做游戏工艺品外贸订单网
  • 免费推广网站制作网站设计的技术有
  • 深圳电商网站建设高校学风建设专栏网站
  • 品牌网站建设 2蝌蚪小三网合一的网站怎么做
  • 对二次网站开发的认识wordpress修改图片大小
  • 电商网站项目建设个人网站空间收费
  • 官方网站制作思路樟木头东莞网站建设
  • 怎么寻找做有益做网站的客户大连网站推广
  • 湖南网站开发企业excel网站建设
  • 安康网站建设技巧腾讯建设网站视频下载
  • 如何能让企业做网站的打算中企动力做网站贵吗
  • wordpress 空间常州seo
  • 网站负责人备案采集照具体要求湛江网吧
  • 长春建站模板制作php网站空间购买
  • 网站域名到期怎么办食品包装设计的介绍
  • 建设网站专栏台州cms模板建站
  • 网站建设套餐方案湛江网站如何制作
  • wordpress网站怎么打开西安企业做网站多少钱
  • 电子商务网站建设的实训报告网页美工设计夏霍