栈的结构定义:
typedef struct {
ElemType *base ;
ElemType *top;
int size;
}STACK;
初始化一个栈:
STACK *InitStack(){
//动态内存开辟
STACK *s =(STACK *)malloc(sizeof(STACK));
//
if(s==NULL){
exit(0);
}
s->base=(ElemType *)malloc(sizeof(ElemType)*STACK_INIT_SIZE);
if(s->base==NULL){
exit(0);
}
s->top=s->base;
s->size=STACK_INIT_SIZE;
return s;
}
其中STACK_INIT_SIZE是自己定义的栈的初始大小。
入栈
int Push(STACK *s,ElemType *e){
if(s==NULL || e==NULL){
return 0;
}
//如果满栈
if(s->top - s->base>=s->size){
s->base=(ElemType *)realloc(s->base,(s->size+STACK_INCREME)*sizeof(ElemType));
if(s->base==NULL){
return 0;
}
s->top=s->base+s->size;
s->size=s->size+STACK_INCREME;
}
*s->top++=*e;
return 1;
}
出栈
int Pop(STACK *s,ElemType *e){
if(s== NULL || e==NULL){
return 0;
}
if(s->base ==s->top){
return 0;
}
*e=*--s->top;
return 1;
}
void DestroyStack(STACK *s){
free(s->base);
free(s);
}
至此,栈的常用操作已告一段落。。
分享到:
相关推荐
数据结构之栈的定义及实现。
数据结构之栈和队列 基本的增删查改。栈(Stack)和队列(Queue)是数据结构中常用的两种基本数据结构。栈是一种后进先出(Last In First Out, LIFO)的数据结构,只允许在栈顶进行插入和删除操作;而队列是一种先进...
数据结构 数据结构_使用javascript讲解数据结构之栈结构
数据结构之栈和队列基本操作及实践
数据结构 栈 C++实现 数据结构 栈 C++实现 数据结构 栈 C++实现 数据结构 栈 C++实现 数据结构 栈 C++实现
数据结构之栈的实现,借鉴数据结构严蔚敏版,略有修改。基于VS2010实现,可直接运行
PPT内容是数据结构中有关栈和队列的知识,非常适合正在学习数据结构基础的同学
数据结构之栈PPT学习教案.pptx
数据结构栈和队列的课程指导上几实验代码 相抵部分
数据结构之栈和队列应用PPT学习教案.pptx
NULL 博文链接:https://yangzhizhen.iteye.com/blog/1472066
基于Linux操作系统应用C语言实现的数据结构之栈操作(带有菜单函数控制),程序健壮性强。
主要介绍了Java数据结构之栈的基本定义与实现方法,简单描述了数据结构中栈的功能、原理,并结合java实例形式分析了栈的基本定义与使用方法,需要的朋友可以参考下
对这两个概念的不明好久,终于找到一篇好文,拿来共享
栈中的元素遵守“先进后出”的原则(LIFO,Last In First Out) 只能在栈顶进行插入和删除操作 压栈(或推入、进栈)即push,将数据放入栈顶并将栈顶指针加一 出栈(或弹出)即pop,将数据从栈顶删除并将栈顶...
在黑框中对数据结构中栈的功能进行模拟操作
很好用的数据结构栈方法学习资料, 代码经过整理和测试运行... 里面讲解丰富
数据结构:栈子系统全文共8页,当前为第1页。数据结构:栈子系统全文共8页,当前为第1页。/* 数据结构:栈子系统全文共8页,当前为第1页。 数据结构:栈子系统全文共8页,当前为第1页。 *题目:设计一个字符型的链栈...
这个资源主要是使用C语言实现的栈和队列两种数据结构基本操作,包含栈的入栈、出栈,队列的入队列、出队列的相关操作,具体包含如下几个: 1、顺序栈:入栈、出栈、获取栈顶元素、打印栈。 2、链栈:入栈、出栈、...