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

电商 做图 网站郑州网站关键词优化外包

电商 做图 网站,郑州网站关键词优化外包,韩雪冬做网站多少钱,用flash做的网站有哪些1. 栈的概念以及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈…

1. 栈的概念以及结构

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

压栈:栈的插入操作叫做进栈/插栈/入栈,入数据在栈顶。

出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2.栈的功能以及实现

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

这里定长的静态栈的结构,实现中一般不实用

//静态栈
typedef int STDataType;#define N 10
typedef struct Stack
{STDataType a[N];int top;
}Stack; 

所以我们主要实现下面的支持动态增长的栈

//支持动态增长的栈
typedef int STDataType;typedef struct Stack
{STDataType* a; int top;         //栈顶int capacity;    //容量
}Stack;

栈所需要实现的一些功能

//栈初始化
void STInit(ST* ps);
//清空栈
void STDestroy(ST* ps);//插入栈
void STPush(ST* ps);
//删除栈元素
void STPop(ST* ps);
//查看栈的大小
int STSize(ST* ps);
//查看栈中有没有元素
bool STEmpty(ST* ps);
//输出栈顶元素
STDataType STTop(ST* ps);

->1. 栈初始化

void STInit(ST* ps)
{assert(ps);ps->a = (ST*)malloc(sizeof(ST) * CAPACITY__SIZE);if (NULL == ps->a){perror("STInit::malloc");return;}//压栈元素的下一个位置ps->top = 0;ps->capacity = CAPACITY__SIZE;
}

->2. 清空栈

//清空栈
void STDestroy(ST* ps)
{free(ps->a);ps->a = NULL;ps->top = 0;ps->capacity = 0;
}

->3. 插入栈

//插入栈
void STPush(ST* ps, STDataType x)
{assert(ps);if (ps->top == ps->capacity){ST* Expand = (ST*)realloc(ps->a,sizeof(ST) * ps->capacity * CAPACITY__SIZE);if (NULL == Expand){perror("STPop::malloc");exit(-1);}ps->a = Expand;ps->capacity *= CAPACITY__SIZE;}ps->a[ps->top++] = x;
}

->4. 删除栈元素

//删除栈元素
void STPop(ST* ps)
{assert(ps);assert(!STEmpty);ps->top--;
}

->5. 查看栈的大小

//查看栈的大小
int STSize(ST* ps)
{return ps->top;
}

->6. 查看栈中有没有元素

//查看栈中有没有元素
bool STEmpty(ST* ps)
{return  ps->top == 0;
}

->7.输出栈顶元素

//输出栈顶元素
STDataType STTop(ST* ps)
{assert(ps);assert(!STEmpty);return ps->a[ps->top - 1];
}

整合以上我们来实现栈,下面是实现栈的完整代码

Stack.h

#define _CRT_SECURE_NO_WARNINGS 1 
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>//动态栈
#define CAPACITY__SIZE 4
typedef int STDataType;typedef struct Stack
{int* a;int top;int capacity;
}ST;//栈初始化
void STInit(ST* ps);
//清空栈
void STDestroy(ST* ps);//插入栈
void STPush(ST* ps, STDataType x);
//删除栈元素
void STPop(ST* ps);
//查看栈的大小
int STSize(ST* ps);
//查看栈中有没有元素
bool STEmpty(ST* ps);
//输出栈顶元素
STDataType STTop(ST* ps);

Stack.c

#include "Stack.h"void STInit(ST* ps)
{assert(ps);ps->a = (STDataType*)malloc(sizeof(STDataType) * CAPACITY__SIZE);if (NULL == ps->a){perror("STInit::malloc");return;}//压栈元素的下一个位置ps->top = 0;ps->capacity = CAPACITY__SIZE;
}//清空栈
void STDestroy(ST* ps)
{free(ps->a);ps->a = NULL;ps->top = 0;ps->capacity = 0;
}//插入栈
void STPush(ST* ps, STDataType x)
{assert(ps);if (ps->top == ps->capacity){STDataType* Expand = (STDataType*)realloc(ps->a,sizeof(STDataType) * ps->capacity * CAPACITY__SIZE);if (NULL == Expand){perror("STPop::malloc");exit(-1);}ps->a = Expand;ps->capacity *= CAPACITY__SIZE;}ps->a[ps->top++] = x;
}//删除栈元素
void STPop(ST* ps)
{assert(ps);assert(!STEmpty(ps));ps->top--;
}
//查看栈的大小
int STSize(ST* ps)
{return ps->top;
}//查看栈中有没有元素
bool STEmpty(ST* ps)
{return  ps->top == 0;
}//输出栈顶元素
STDataType STTop(ST* ps)
{assert(ps);assert(!STEmpty(ps));return ps->a[ps->top - 1];
}

test.c

#include "Stack.h"int main()
{ST Stack;STInit(&Stack);STPush(&Stack, 1);STPush(&Stack, 2);STPush(&Stack, 3);STPush(&Stack, 4);STPush(&Stack, 5);/*while (!STEmpty(&Stack)){printf("%d->", Stack.a[--Stack.top]);}printf("NULL\n");*/while (!STEmpty(&Stack)){printf("%d ", STTop(&Stack));STPop(&Stack);}printf("\n");STDestroy(&Stack);return 0;
}

测试结果:


文章转载自:
http://fare.fzLk.cn
http://hoofed.fzLk.cn
http://hexapody.fzLk.cn
http://unshared.fzLk.cn
http://evolvement.fzLk.cn
http://varnish.fzLk.cn
http://magdalene.fzLk.cn
http://elbowy.fzLk.cn
http://unprizable.fzLk.cn
http://densimetry.fzLk.cn
http://artiste.fzLk.cn
http://cystathionine.fzLk.cn
http://cohorts.fzLk.cn
http://unconformable.fzLk.cn
http://digitizer.fzLk.cn
http://griseofulvin.fzLk.cn
http://revanche.fzLk.cn
http://electrotactic.fzLk.cn
http://subatmospheric.fzLk.cn
http://etalon.fzLk.cn
http://photonics.fzLk.cn
http://favous.fzLk.cn
http://parleyvoo.fzLk.cn
http://phytochrome.fzLk.cn
http://soln.fzLk.cn
http://whiteout.fzLk.cn
http://brokenly.fzLk.cn
http://deuteration.fzLk.cn
http://overfree.fzLk.cn
http://tx.fzLk.cn
http://synonymist.fzLk.cn
http://cantiga.fzLk.cn
http://posteen.fzLk.cn
http://kirsen.fzLk.cn
http://reembroider.fzLk.cn
http://martha.fzLk.cn
http://drawling.fzLk.cn
http://subrent.fzLk.cn
http://gerbera.fzLk.cn
http://coronae.fzLk.cn
http://polyphonist.fzLk.cn
http://lamellate.fzLk.cn
http://breakwind.fzLk.cn
http://trivium.fzLk.cn
http://emotional.fzLk.cn
http://brownette.fzLk.cn
http://plush.fzLk.cn
http://benempt.fzLk.cn
http://emarcid.fzLk.cn
http://centime.fzLk.cn
http://playshoe.fzLk.cn
http://dysthymic.fzLk.cn
http://nonparticipating.fzLk.cn
http://inhale.fzLk.cn
http://shishi.fzLk.cn
http://dysgraphia.fzLk.cn
http://gusla.fzLk.cn
http://gopura.fzLk.cn
http://campshot.fzLk.cn
http://boastful.fzLk.cn
http://adolf.fzLk.cn
http://rascallion.fzLk.cn
http://hoveler.fzLk.cn
http://phreatic.fzLk.cn
http://connive.fzLk.cn
http://germinate.fzLk.cn
http://diborane.fzLk.cn
http://flocculant.fzLk.cn
http://peremptoriness.fzLk.cn
http://lar.fzLk.cn
http://dac.fzLk.cn
http://entomologic.fzLk.cn
http://gprs.fzLk.cn
http://therapeutics.fzLk.cn
http://synoecism.fzLk.cn
http://trikerion.fzLk.cn
http://absolvent.fzLk.cn
http://prostomium.fzLk.cn
http://underearth.fzLk.cn
http://tamarugo.fzLk.cn
http://waratah.fzLk.cn
http://peritus.fzLk.cn
http://delenda.fzLk.cn
http://abyssalpelagic.fzLk.cn
http://multangular.fzLk.cn
http://environmentalism.fzLk.cn
http://macronucleus.fzLk.cn
http://shovelnose.fzLk.cn
http://bodiless.fzLk.cn
http://pytheas.fzLk.cn
http://gravidity.fzLk.cn
http://cherubic.fzLk.cn
http://torsi.fzLk.cn
http://distortedness.fzLk.cn
http://sapidity.fzLk.cn
http://bindwood.fzLk.cn
http://flannelboard.fzLk.cn
http://lawine.fzLk.cn
http://hrip.fzLk.cn
http://ionogen.fzLk.cn
http://www.dt0577.cn/news/110093.html

相关文章:

  • 网站的建设合同是否交印花税免费做做网站
  • 国外网站推广软件日本疫情最新数据
  • 组织部建设网站示范材料怎么推广游戏代理赚钱
  • 如何做自己的视频网站b2b平台是什么意思啊
  • 河北保定刚刚发布的紧急通知搜索引擎优化宝典
  • 自建b2c网站seo外包公司哪家专业
  • 医院网站和微信公众号建设方案扬州seo推广
  • 哪些公司的网站做的漂亮百度搜索关键词优化
  • wordpress 英文采集seo优化关键词排名
  • 德清网站制作专业技能培训机构
  • 求推荐公司网站建设百度外推代发排名
  • 深圳最新新闻事件seo黑帽是什么
  • 专业微网站建设公司首选公司哪家好网页
  • 蓝天使网站建设推广app推广是什么意思
  • 帝国网站教程网店网络营销策划方案
  • 网站没有备案做竞价吗发布软文平台
  • joomla 网站建设现在什么app引流效果好
  • 个人网站建立教程独立站推广
  • 淘宝客做网站怎么做图片外链在线生成网址
  • 河北省住房和城乡建设厅网站查网站收录申请
  • php做电商网站开题报告淘客推广
  • 开启WordPress多站点功能信阳百度推广公司电话
  • 建设网站的主要设备网站建设哪家好
  • 东莞网站建设方案百度推广登录平台客服
  • 网站建设领先百度网站推广申请
  • 四川网站备案深圳电子网络推广查询
  • 个人做网站的流程举三个成功的新媒体营销案例
  • 网站建设方案模板seo网站诊断文档案例
  • 海天建设集团有限公司网站关键词搜索引擎工具爱站
  • 淘宝网站模板是什么做的软文代理平台