微前端架构如何改变企业的开发模式与效率提升
641
2022-11-02
创建一个栈存储结构,并且写入一些对栈的基本的操作
什么是栈:简单的说就是一个容器,一个瓶子,我们向瓶子里面放糖果,当想吃糖果的时候,将瓶子里的糖果再倒出来。我们要实现的就是怎样创建一个瓶子,并且怎样很容易的向里面添加糖果,向吃糖果的时候可以拿出来,自然我们拿出来的糖果是瓶子上面的糖果,也就是最后放进去的糖果。
我们继续想:要模拟这样的一个瓶子,我们需要几个变量,简单点,我们需要知道瓶子的高度,瓶子盖子,和瓶子底部。这样我们就可以很形象的描述出一个瓶子。
typedef struct{SElemType *base; SElemType *Top; int stackSize;}SqStack;
其中SElemType就是我们向瓶子里面放的糖果。上面进行的是对瓶子的一个描述,然而瓶子并未出现,怎样来让瓶子出现,一个我们能够“碰的到”瓶子,一个可以让我操作的瓶子。
int InitStack(SqStack *S)
{
S->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!S->base) return 0;
S->top=S->base;
S->stackSize=0;
return 1;
}
上面就是初始化一个栈,也就是我们的瓶子出现了。现在我们需要做的是向瓶子里面添加糖果
int Push(SqStack *S,SElemType e)
{
//你可以不断的输入,改变e的值,然后调用这个函数,就可以实现向栈中插入数据元素
if(S->top-S->base>=S->stackSize)
{
S->base=(SElemType *)realloc(S->base,(S->stackSize+STACKINCREMENT)*sizeof(SElemType));
if(!S->base) exit(OVERFLOW);
S->top=S->base+S->stackSize;
S->stackSize=S->stackSize+STACKINCREMENT;
}
*S->top++=e;
return OK;
}
//然后我们需要做的是,可以删除栈顶的元素,并且将栈顶元素存储到e中
int Pop(SqStack *S,SElemType e)
{
if(S->top==S->base)
return ERRIR;
e=*(--S->top);
return OK;
}
//获取栈顶的元素
int getTop(SqStack *S,SElemType e)
{
if(S->base==S->top)
return ERROR;
e=*(S->top-1);
return OK;
}
//遍历栈中的元素
int goEveryElem(SqStack *S)
{
if(S->top==S->base)
return ERROR;
int length=S->top-S->base;
int i=0;
S->top=S->base;
for(S->top,i;i<=length;i++,S->top++)
{
cout<<*(S->top);
}
}
上面就是对栈的一个基本的了解,当然还有很多对栈的操作,这个地方也就不一一的叙述,在下面的文章中将会继续 的讲解栈的一些应用。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~