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

做实体店打折信息网站如何做视频网站的会员代理

做实体店打折信息网站,如何做视频网站的会员代理,如何提高网站的点击率,室内设计公司图片前言#xff1a; 在学习完数据结构顺序表和链表之后#xff0c;其实我们就可以做很多事情了#xff0c;后面的栈和队列#xff0c;其实就是对前面的顺序表和链表的灵活运用#xff0c;今天我们就来学习一下栈的原理和应用。 准备工作#xff1a;本人习惯将文件放在test.c…前言 在学习完数据结构顺序表和链表之后其实我们就可以做很多事情了后面的栈和队列其实就是对前面的顺序表和链表的灵活运用今天我们就来学习一下栈的原理和应用。 准备工作本人习惯将文件放在test.c、SeqList.c、SeqList.h三个文件中来实现其中test.c用来放主函数SeqList.c用来放调用的函数SeqList.h用来放头文件和函数声明 目录 什么是队列 栈的节点结构 栈的基本操作 1、初始化 2、销毁 3、插入元素 4、判断栈顶元素是否为空 5、删除元素 6、返回栈顶元素 7、栈中元素个数 完整的栈实例 总结 什么是队列 队列中的数据是按照先进后出的顺序的也就是说先进去的数字后出来 因为栈的这种性质所以栈我们用顺序表来实现比链表方便很多顺序表就可以实现尾插尾出所以我们一般就采用顺序表来实现 栈的节点结构 队列采用的顺序表的结构所以与顺序表差异不大 typedef int STDataType; typedef struct stack {STDataType* a;int top; //指向栈元素下一位int capacity; }ST;栈的结构很简单定义一个整形指针一个表示容量和一个表示尾部元素的整形变量即可 栈的基本操作 //初始化 void STInit(ST* pst); //销毁 void STDestroy(ST* pst); //插入元素 void STPush(ST* pst, STDataType x); //删除元素 void STPop(ST* pst); //判断栈顶元素是否为空 bool STEmpty(ST* pst); //找栈顶元素 STDataType STTop(ST* pst); //栈中元素个数 STDataType STSize(ST* pst); 看上面的函数声明部分我们就可以看到我们每一步要实现的内容接下来我们就来一步一步进行实现 1、初始化 //初始化 void STInit(ST* pst) {pst-a NULL;pst-capacity 0;pst-top 0; }2、销毁 //销毁 void STDestroy(ST* pst) {assert(pst);free(pst-a);pst-capacity pst-top 0; }3、插入元素 插入元素时要先检查空间是否够用如果不够用要先进行扩容 //插入元素 void STPush(ST* pst, STDataType x) {if (pst-top pst-capacity){int newcapacity pst-capacity 0 ? 4 : pst-capacity * 2;STDataType* newnode (STDataType*)realloc(pst-a, sizeof(STDataType) * newcapacity);if (newnode NULL){perror(STPush);return;}pst-a newnode;pst-capacity newcapacity;}pst-a[pst-top] x;pst-top; }4、判断栈顶元素是否为空 这一步在下面有用到例如当删除栈顶元素时如果栈顶元素为空就无法操作所以需要判断栈顶元素是否为空 //判断栈顶元素是否为空 bool STEmpty(ST* pst) {assert(pst);return pst-top 0; }5、删除元素 这里删除元素是删除栈顶元素因为栈的特性是即出即删 //删除元素 void STPop(ST* pst) {assert(pst);assert(!STEmpty(pst));pst-top--; }6、返回栈顶元素 //找栈顶元素 STDataType STTop(ST* pst) {assert(pst);assert(!STEmpty(pst));return pst-a[pst-top - 1]; }7、栈中元素个数 //栈中元素个数 STDataType STSize(ST* pst) {assert(pst);return pst-capacity; } 完整的栈实例 SeqList.h //实现栈 typedef int STDataType; typedef struct stack {STDataType* a;int top; //指向栈元素下一位int capacity; }ST;//初始化 void STInit(ST* pst); //销毁 void STDestroy(ST* pst); //插入元素 void STPush(ST* pst, STDataType x); //删除元素 void STPop(ST* pst); //判断栈顶元素是否为空 bool STEmpty(ST* pst); //找栈顶元素 STDataType STTop(ST* pst); //栈中元素个数 STDataType STSize(ST* pst); test.c //实现栈 void test() {ST st;STInit(st);STPush(st,1);STPush(st, 2);STPush(st, 3);STPush(st, 4);while (!STEmpty(st)){printf(%d , STTop(st));STPop(st);}STDestroy(st); } int main() {test();return 0; } SeqList.c //实现栈 //初始化 void STInit(ST* pst) {pst-a NULL;pst-capacity 0;pst-top 0; } //销毁 void STDestroy(ST* pst) {assert(pst);free(pst-a);pst-capacity pst-top 0; } //插入元素 void STPush(ST* pst, STDataType x) {if (pst-top pst-capacity){int newcapacity pst-capacity 0 ? 4 : pst-capacity * 2;STDataType* newnode (STDataType*)realloc(pst-a, sizeof(STDataType) * newcapacity);if (newnode NULL){perror(STPush);return;}pst-a newnode;pst-capacity newcapacity;}pst-a[pst-top] x;pst-top; } //判断栈顶元素是否为空 bool STEmpty(ST* pst) {assert(pst);return pst-top 0; } //删除元素 void STPop(ST* pst) {assert(pst);assert(!STEmpty(pst));pst-top--; } //找栈顶元素 STDataType STTop(ST* pst) {assert(pst);assert(!STEmpty(pst));return pst-a[pst-top - 1]; } //栈中元素个数 STDataType STSize(ST* pst) {assert(pst);return pst-capacity; } 总结 总之其实栈就是对顺序表的应用熟练栈和队列对我们巩固顺序表和链表帮助很大当然栈在一些场景下很实用后面我会出一个专门的习题讲解篇章讲数据结构的一些经典题型感兴趣的可以点赞关注一下 创作不易还请各位大佬点赞支持一下
http://www.zqtcl.cn/news/622707/

相关文章:

  • 好网站具备条件网站建设外链
  • 青岛如何建立企业网站企业中国数据域名注册
  • 怎么看网站做的好不好南京h5 网站建设
  • 贵阳微信网站制作下列哪一项不属于电子商务网站建设
  • 有没有做电子名片的网站网络广告怎么投放
  • 网站开发要用cms教育网站制作价格
  • 深圳华鑫峰网站建设wordpress 关闭新闻
  • 韩国网站加速器南宁做网站seo
  • 义乌网站建设公司书生商友小程序自己制作流程
  • 株洲企业网站建设费用python mysql开发网站开发
  • 东航集团客户网站是哪家公司建设网站开发软件开发
  • 淮安企业网站制作科技公司办公室设计
  • 东莞企石网站设计手机能制作网站吗
  • 大连网站建设选高合科技广州开发区人才工作集团有限公司
  • 四川建设招标网站首页价格低廉怎么换个说法
  • 南昌企业制作网站龙华区深圳北站
  • 北京网站设计案例郑州网站设计培训
  • wordpress在lnmp部署百度搜索引擎优化案例
  • asp网站建设 文献综述评价一个网站设计的好坏
  • 做网站虚拟主机配置网站是怎样制作的
  • 网站建设方案 文库新乡网站seo优化
  • 网站优化需要什么软件有没有帮别人做网站
  • 做国外网站选择vps汉中公司做网站
  • ipad网站开发百度推广送的公司网站有什么用
  • 网站被收录wordpress模板游戏推广
  • 做个网站成功案例深圳网络推广工资
  • 河南省城乡与住房建设厅网站做网站的都是什么专业毕业的
  • 做网站月薪10万微信网页开发教程
  • 网站开发组岗位上海著名企业
  • 阿里云网站建设方案网站源码分享