`
Elyric
  • 浏览: 14625 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

数据结构之栈

阅读更多
栈的结构定义:
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);
}

至此,栈的常用操作已告一段落。。
分享到:
评论

相关推荐

    数据结构之栈的定义及实现

    在这个主题中,“数据结构之栈的定义及实现”将深入探讨栈的基本概念、操作以及在编程中的具体实现。 栈的定义: 栈是一种线性数据结构,它的特点是元素只能在栈的一端进行插入和删除操作,这一端被称为栈顶。新...

    数据结构-使用javascript讲解数据结构之栈结构.zip

    在这个“数据结构-使用javascript讲解数据结构之栈结构.zip”文件中,我们可以通过JavaScript语言来深入理解栈的原理和应用。 首先,栈是一种线性数据结构,其操作主要集中在一端,称为栈顶。栈的基本操作包括入栈...

    数据结构之栈的实现.rar

    在本项目“数据结构之栈的实现”中,我们将深入探讨栈的概念、性质及其在编程中的应用,并结合VS2010环境下的实现方法。 栈的基本操作包括压入(Push)元素到栈顶和弹出(Pop)栈顶元素。在计算机科学中,栈常用于...

    数据结构之栈和队列 基本的增删查改

    数据结构之栈和队列 基本的增删查改。栈(Stack)和队列(Queue)是数据结构中常用的两种基本数据结构。栈是一种后进先出(Last In First Out, LIFO)的数据结构,只允许在栈顶进行插入和删除操作;而队列是一种先进...

    数据结构之栈功能在黑框中实现

    在“数据结构之栈功能在黑框中实现”这个主题中,我们将深入探讨栈的原理、操作以及如何在黑框环境中模拟栈的功能。 栈是一种后进先出(Last In, First Out,简称LIFO)的数据结构。形象地比喻,我们可以将其想象为...

    数据结构之栈、队列全部代码

    在这个"数据结构之栈、队列全部代码"的压缩包中,我们将会深入探讨两种基本且重要的线性数据结构——栈和队列,以及它们在编程中的实际应用。 首先,栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据...

    数据结构之栈(顺序结构实现)

    ### 数据结构之栈(顺序结构实现) #### 一、引言 在计算机科学领域,数据结构是用于组织和管理数据的一种特殊方式,它为解决实际问题提供了基础支持。栈(Stack)作为最基本也是最重要的数据结构之一,在算法设计、...

    数据结构之栈(C实现)

    栈是一种非常基础且重要的数据结构,被广泛应用于各种算法和程序设计中。本文将深入探讨栈的原理,以及如何用C语言实现一个栈。 栈被称为“后进先出”(Last In, First Out,简称LIFO)的数据结构,它的主要操作...

    笔记6-数据结构之栈和队列

    笔记6-数据结构之栈和队列

    python数据结构之栈和队列.md

    python数据结构之栈和队列.md

    数据结构中的栈和队列

    PPT内容是数据结构中有关栈和队列的知识,非常适合正在学习数据结构基础的同学

    数据结构之栈——C++实现

    栈是一种非常重要的数据结构,被称为“后进先出”(Last In First Out, LIFO)的数据结构。在C++中实现栈,我们可以利用STL(Standard Template Library)中的`stack`容器,或者自定义一个栈类来完成。 1. **栈的...

    数据结构之栈PPT学习教案.pptx

    数据结构之栈PPT学习教案.pptx

    Java数据结构之栈与堆

    Java 数据结构中的栈和堆是两种重要的内存管理方式,它们在程序执行时分别扮演着不同的角色。栈主要负责存储程序运行过程中的局部变量、函数调用等信息,而堆则是用于动态分配对象内存的区域。 栈的优势在于其存取...

    Java数据结构之栈的基本定义与实现方法示例

    Java数据结构之栈的基本定义与实现方法示例 Java数据结构之栈是一种特殊的线性表,它只能在某一端插入和删除元素,按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶...

    数据结构栈和队列(参考代码)

    ### 数据结构栈和队列知识点解析 #### 一、栈的基本概念与操作 **栈**是一种特殊的线性表,只允许在一端进行插入和删除操作,这一端被称为栈顶,另一端被称为栈底。栈遵循先进后出(First In Last Out, FILO)的...

    数据结构栈和队列试题及答案

    ### 数据结构之栈和队列知识点详解 #### 一、选择题知识点解析 1. **栈的操作原则** 栈是一种特殊的线性表,它只允许在一端进行插入和删除操作,这一端称为栈顶(top)。另一端称为栈底(bottom),不允许在其上进行...

    数据结构之栈操作(linux C语言 带有菜单选择)

    基于Linux操作系统应用C语言实现的数据结构之栈操作(带有菜单函数控制),程序健壮性强。

    数据结构之栈和队列基本操作及实践

    在实际编程中,我们经常会遇到需要利用栈和队列解决问题的情况,因此掌握这些基本数据结构及其应用是每个程序员的基础技能之一。 在提供的压缩包文件“栈和队列”中,可能包含了关于这两种数据结构的实例代码、练习...

Global site tag (gtag.js) - Google Analytics