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

南宁老牌网站建设公司58同城如何发广告

南宁老牌网站建设公司,58同城如何发广告,泉州市住房与城乡建设局网站,h5学习教程1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。…

1.

1.1栈的概念及结构

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out)的原则。

压栈:栈的插入操作叫做进栈 / 压栈 / 入栈, 入数据在栈顶
出栈:栈的删除操作叫做出栈。 出数据也在栈顶
注意:栈后进先出

2.栈的实现

栈的实现一般可以使用 数组或者链表实现 ,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。

1.栈的初始化

定义栈顶有两种情况:1.栈顶指向元素 2.栈顶指向元素下一个一个位置

//初始化
void STInit(ST* ps)
{assert(ps);//top指向栈顶等于栈顶下一个元素ps->top = 0;ps->a = NULL;ps->capcity = 0;//top指向栈顶的元素//ps->top=-1
}

2.栈的销毁

void StDestroy(ST* ps)//销毁
{assert(ps);ps->capcity = ps->top = 0;free(ps->a);ps->a = NULL;
}

3.入栈

void STPush(ST* ps, STDataType x)//入栈
{assert(ps);if (ps->capcity == ps->top){int newcapcity = ps->capcity = 0 ? 4 : ps->capcity * 2;STDataType* temp = (STDataType*)realloc(ps->a, newcapcity * sizeof(STDataType));if (temp == NULL){perror("realloc fail");exit(1);}ps->a = temp;ps->capcity = newcapcity;}ps->a[ps->top++] = x;
}

4.出栈

void STPop(ST* ps)//出栈
{assert(ps);assert(ps->top > 0);//return ps->a[ps->top--];ps->top--;
}

5.获取元素个数

//获取元素个数
int STSize(ST* ps)
{assert(ps);return ps->top;
}

6.获取栈顶数据

//获取栈顶数据
STDataType STTop(ST* ps)
{assert(ps);assert(ps->top > 0);return ps->a[ps->top - 1];
}

7.判空

//判空
bool STEmpty(ST* ps)
{assert(ps);return ps->top == 0;
}

3.完整代码

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int STDataType;
typedef struct Stack
{STDataType* a;int capcity;int top;
}ST;
//初始化和销毁
void STInit(ST* ps);
void StDestroy(ST* ps);//入栈和出栈
void STPush(ST* ps, STDataType x);
void STPop(ST* ps);//获取个数
int STSize(ST* ps);//获取栈顶数据
STDataType STTop(ST* ps);//判空
bool STEmpty(ST* ps);#include"Stcak.h"
//初始化
void STInit(ST* ps)
{assert(ps);//top指向栈顶等于栈顶下一个元素ps->top = 0;ps->a = NULL;ps->capcity = 0;//top指向栈顶的元素//ps->top=-1
}
void StDestroy(ST* ps)//销毁
{assert(ps);ps->capcity = ps->top = 0;free(ps->a);ps->a = NULL;
}
void STPush(ST* ps, STDataType x)//入栈
{assert(ps);if (ps->capcity == ps->top){int newcapcity = ps->capcity = 0 ? 4 : ps->capcity * 2;STDataType* temp = (STDataType*)realloc(ps->a, newcapcity * sizeof(STDataType));if (temp == NULL){perror("realloc fail");exit(1);}ps->a = temp;ps->capcity = newcapcity;}ps->a[ps->top++] = x;
}
void STPop(ST* ps)//出栈
{assert(ps);assert(ps->top > 0);//return ps->a[ps->top--];ps->top--;
}
//获取元素个数
int STSize(ST* ps)
{assert(ps);return ps->top;
}
//获取栈顶数据
STDataType STTop(ST* ps)
{assert(ps);assert(ps->top > 0);return ps->a[ps->top - 1];
}//判空
bool STEmpty(ST* ps)
{assert(ps);return ps->top == 0;
}#include"Stcak.h"
void test()
{ST sl;STInit(&sl);STPush(&sl, 1);STPush(&sl, 2);STPush(&sl, 3);while (!STEmpty(&sl)){printf("%d ", STTop(&sl));STPop(&sl);}
}
int main()
{test();return 0;
}

http://www.dtcms.com/wzjs/446426.html

相关文章:

  • 用户浏览网站的方式免费推广网站2023
  • 代理网页游戏需要什么条件啊网站seo收录工具
  • 合肥网站建设 卫来网络怎么线上推广自己的产品
  • 关键字查询我的网站怎么做让手机变流畅的软件下载
  • 备案网站查询网址东莞网站关键词优化排名
  • 成都三日游最佳攻略湖南靠谱seo优化
  • 上海浦东新区嘉兴seo
  • 网站的测试和网站上线培训心得体会范文大全1000字
  • 黑龙江网站建设开发seo赚钱
  • 网站开发怎么模拟真实苹果手机的使用百度推广的渠道有哪些
  • 四川做网站优化价格外贸订单一般在哪个平台接?
  • 建设有一个网站需要什么百度云手机app下载
  • 动态网站建设技术南昌百度快速排名提升
  • 建站行业解决方案推广形式
  • 基层建设期刊网站360建网站
  • 网站专题分类中国网络营销公司
  • 木蚂蚁网站正在建设中东莞关键词排名快速优化
  • 河南官网网站建设安徽网站设计
  • 自己做的网站显示不安全怎么回事宣传软文
  • 大好网站搜索引擎营销的6种方式
  • 网站二次开发湖北seo公司
  • 免费如何做网页或网站西安seo优化系统
  • 电影里的做视频在线观看网站网店产品seo如何优化
  • 塘厦东莞网站建设seo如何挖掘关键词
  • 网站建设,h5,小程序品牌推广外包公司
  • 岳阳网站设计公司青岛官网seo方法
  • 网站设计师要学什么淘宝营销推广方案
  • 嘉善网站建设seo专业优化公司
  • 做图文的网站长春网络优化最好的公司
  • h5可以用什么网站做大众点评seo关键词优化