`
trix
  • 浏览: 84845 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

堆栈基本操作

阅读更多
#include <stdio.h>
#include <stdlib.h>
#define   STACK_INIT_SIZE   100
#define   INCREMENT_SIZE   10
typedef   char   ElemType;
typedef   struct  
{
ElemType   *base,*top;
int   stacksize;
}SqStack;

int   StackInit(SqStack   *);
int   Push(SqStack   *);
int   pop(SqStack   *);
int   GetTop(SqStack   *);

int   StackInit(SqStack   *S)
{
S-> base=(ElemType   *)malloc(STACK_INIT_SIZE   *   sizeof(ElemType));
if(!S-> base)   printf( "out   of   memory!\n ");
S-> top=S-> base;
S-> stacksize=STACK_INIT_SIZE;
return   1;
}

int   GetTop(SqStack   *S)
{
ElemType   e;
if(S-> top==S-> base)   return   0;
e=*(S-> top-1);
return   1;
}

int   Push(SqStack   *S)
{
if(S-> top-S-> base> =S-> stacksize)
{
S-> base=(ElemType   *)realloc(S-> base,(S-> stacksize+INCREMENT_SIZE)   *   sizeof(ElemType));
if(!S-> base)   exit(0);
S-> top=S-> base+S-> stacksize;        
S-> stacksize+=INCREMENT_SIZE;
}
printf( "请输入一个字符:\n ");
scanf( "%c ",S-> top++);     //此处有改动,应该把变量的地址传给scanf函数。
return   1;
}

int   Pop(SqStack   *S)
{
ElemType   e;
if(S-> top==S-> base)   return   0;
return   1;
e=*(--S-> top);
}


int   main()
{
SqStack   S;   //此处注意,指针必须让他指向东西才行。
StackInit(&S);
Push(&S);
GetTop(&S);
Pop(&S);
return   0;
}
分享到:
评论

相关推荐

    ARM体系结构数据类型级及寄存器堆栈操作操作实验报告

    在这个实验中,学生需要深入理解ARM体系结构的基础知识,包括数据类型、内存管理和堆栈操作。 1. **数据类型**:ARM处理器支持三种基本数据类型:Byte(8位)、Halfword(16位)和Word(32位)。这些数据类型在编程...

    arm堆栈的操作之我见

    ARM 堆栈操作是 ARM 架构中的一种基本操作方式,了解 ARM 堆栈操作是学习 ARM 的基础。下面是关于 ARM 堆栈操作的详细说明: 一、ARM 堆栈组织结构 ARM 堆栈组织结构是满栈降的形式,满栈即 sp 是要停留在最后一个...

    堆栈操作_StackSamplt

    在这个场景中,我们将深入探讨堆栈的基本概念、操作以及它们在实际应用中的作用。 堆栈是一种后进先出(Last In, First Out, LIFO)的数据结构。它的主要操作包括压栈(Push)、弹栈(Pop)、查看栈顶元素(Peek)...

    堆栈操作指令.zip

    堆栈是许多计算和数据处理任务的基础,尤其在处理器内部,堆栈操作指令扮演着至关重要的角色。本文将深入探讨堆栈的基本概念、堆栈操作指令以及它们在计算机系统中的应用。 堆栈的基本操作包括压栈(Push)、弹栈...

    操作系统中的堆栈的经典解释

    ### 操作系统中的堆栈的经典解释 在计算机科学与软件工程领域中,堆栈(Stack)与堆(Heap)是两种极为重要的内存管理机制。它们不仅对于编程语言的设计至关重要,而且直接影响程序运行时的性能与稳定性。本文将...

    堆栈链表与队列链表的基本操作

    本篇文章将详细探讨堆栈链表和队列链表的基本操作。 首先,让我们了解堆栈(Stack)的概念。堆栈是一种后进先出(LIFO,Last In First Out)的数据结构,类似于日常生活中的叠盘子。在堆栈中,最后加入的元素将是第...

    堆栈的基本操作、队列的基本操作

    总的来说,理解和熟练掌握堆栈和队列的基本操作是成为优秀IT专业人员的必要步骤。它们不仅在理论上有重要价值,而且在实际编程中扮演着不可或缺的角色。通过实验,学生能够加深对这两种数据结构的理解,提高编程技能...

    数据结构课程堆栈知识应用

    ##### 2.3 堆栈基本操作 1. **入栈(Push)**:向堆栈中添加一个新元素。 2. **出栈(Pop)**:从堆栈中移除一个元素。 3. **查看栈顶元素(Top)**:返回栈顶元素而不删除。 4. **判断是否为空(IsEmpty)**:检查堆栈是否...

    【源代码】C++实现严蔚敏数据结构所有算法(三)堆栈的基本操作(VS2017)

    在本资源中,我们主要探讨的是使用C++编程语言实现严蔚敏教授在《数据结构》一书中提及的堆栈基本操作。堆栈是一种非常重要的数据结构,它遵循“后进先出”(Last In First Out,简称LIFO)的原则,广泛应用于计算机...

    数据结构 堆栈和队列基本操作

    ### 数据结构:堆栈与队列的基本操作 #### 一、引言 在计算机科学领域,数据结构是组织和管理数据的重要方式之一。其中,堆栈(Stack)和队列(Queue)作为两种特殊的线性数据结构,在各种应用场景中扮演着重要的...

    堆栈的创建,出栈,入栈等操作

    创建一个空堆栈的基本语法是: ```cpp #include std::stack&lt;int&gt; myStack; ``` 这将创建一个可以存储整数的堆栈。如果你想使用自定义的数据结构,你可以提供一个容器作为模板参数,例如`std::deque`或`std::...

    opengl中的堆栈操作

    在OpenGL中,堆栈操作是管理图形状态的重要机制,特别是在处理变换时。本文将深入探讨`glPushMatrix()`和`glPopMatrix()`这两个函数在OpenGL中的使用。 一、`glPushMatrix()`和`glPopMatrix()`概述 `glPushMatrix...

    堆栈及静态数据区详解

    堆栈及静态数据区详解

    数据结构代码例题 堆栈 树 连表 字符串 基本操作程序员笔试必备的东西

    本压缩包包含了一系列关于堆栈、树、链表和字符串的基本操作的代码例题,这些都是程序员必备的知识点。 首先,我们来看堆栈(Stack)。堆栈是一种“后进先出”(LIFO)的数据结构,常用于实现函数调用、表达式求值...

    基于arm的操作系统中断堆栈分析及实现.pdf

    ARM技术是微处理器架构的重要组成部分,广泛应用于移动设备、嵌入式系统等领域。中断是操作系统中非常重要的一部分,它允许... Labroasse的COS等,这些资料可以为深入理解ARM操作系统中断堆栈提供理论基础和实现案例。

    关于堆栈(mac堆栈操作文档)

    堆栈的基本概念 - **定义**:堆栈是一种特殊的线性数据结构,其特点是只允许在一端进行插入或删除操作,通常称为栈顶(top)。堆栈遵循后进先出(LIFO, Last In First Out)的原则。 - **用途**:在程序设计中,堆栈被...

    dongzuoji.zip_labview做堆栈_labview有堆栈吗

    这样的设计就模拟了堆栈的基本操作:压栈(Push)和弹栈(Pop)。 描述中提到的“堆栈动作机”可能是一个特定的程序或者模块,它使用LabVIEW来实现堆栈的操作,并可能包含了其他与之相关的功能,如错误处理、数据...

    MIPS堆栈操作示例

    在本篇文章中,我们将详细介绍如何在MIPS中实现基本的堆栈操作,并通过一个具体的例子——字符串反转程序来展示这些操作的实际应用。 #### 堆栈指针与初始化 在MIPS架构中,寄存器$29通常被用作堆栈指针寄存器($sp...

    mips体系架构和堆栈操作

    本文将深入探讨MIPS体系结构的基本概念,以及在该架构下如何进行堆栈操作。 首先,让我们了解MIPS体系架构的核心组成部分。MIPS架构主要包括以下几个部分: 1. **寄存器**:MIPS处理器有32个通用寄存器,分别命名...

Global site tag (gtag.js) - Google Analytics