#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体系结构的基础知识,包括数据类型、内存管理和堆栈操作。 1. **数据类型**:ARM处理器支持三种基本数据类型:Byte(8位)、Halfword(16位)和Word(32位)。这些数据类型在编程...
ARM 堆栈操作是 ARM 架构中的一种基本操作方式,了解 ARM 堆栈操作是学习 ARM 的基础。下面是关于 ARM 堆栈操作的详细说明: 一、ARM 堆栈组织结构 ARM 堆栈组织结构是满栈降的形式,满栈即 sp 是要停留在最后一个...
在这个场景中,我们将深入探讨堆栈的基本概念、操作以及它们在实际应用中的作用。 堆栈是一种后进先出(Last In, First Out, LIFO)的数据结构。它的主要操作包括压栈(Push)、弹栈(Pop)、查看栈顶元素(Peek)...
堆栈是许多计算和数据处理任务的基础,尤其在处理器内部,堆栈操作指令扮演着至关重要的角色。本文将深入探讨堆栈的基本概念、堆栈操作指令以及它们在计算机系统中的应用。 堆栈的基本操作包括压栈(Push)、弹栈...
### 操作系统中的堆栈的经典解释 在计算机科学与软件工程领域中,堆栈(Stack)与堆(Heap)是两种极为重要的内存管理机制。它们不仅对于编程语言的设计至关重要,而且直接影响程序运行时的性能与稳定性。本文将...
本篇文章将详细探讨堆栈链表和队列链表的基本操作。 首先,让我们了解堆栈(Stack)的概念。堆栈是一种后进先出(LIFO,Last In First Out)的数据结构,类似于日常生活中的叠盘子。在堆栈中,最后加入的元素将是第...
总的来说,理解和熟练掌握堆栈和队列的基本操作是成为优秀IT专业人员的必要步骤。它们不仅在理论上有重要价值,而且在实际编程中扮演着不可或缺的角色。通过实验,学生能够加深对这两种数据结构的理解,提高编程技能...
##### 2.3 堆栈基本操作 1. **入栈(Push)**:向堆栈中添加一个新元素。 2. **出栈(Pop)**:从堆栈中移除一个元素。 3. **查看栈顶元素(Top)**:返回栈顶元素而不删除。 4. **判断是否为空(IsEmpty)**:检查堆栈是否...
在本资源中,我们主要探讨的是使用C++编程语言实现严蔚敏教授在《数据结构》一书中提及的堆栈基本操作。堆栈是一种非常重要的数据结构,它遵循“后进先出”(Last In First Out,简称LIFO)的原则,广泛应用于计算机...
### 数据结构:堆栈与队列的基本操作 #### 一、引言 在计算机科学领域,数据结构是组织和管理数据的重要方式之一。其中,堆栈(Stack)和队列(Queue)作为两种特殊的线性数据结构,在各种应用场景中扮演着重要的...
创建一个空堆栈的基本语法是: ```cpp #include std::stack<int> myStack; ``` 这将创建一个可以存储整数的堆栈。如果你想使用自定义的数据结构,你可以提供一个容器作为模板参数,例如`std::deque`或`std::...
在OpenGL中,堆栈操作是管理图形状态的重要机制,特别是在处理变换时。本文将深入探讨`glPushMatrix()`和`glPopMatrix()`这两个函数在OpenGL中的使用。 一、`glPushMatrix()`和`glPopMatrix()`概述 `glPushMatrix...
堆栈及静态数据区详解
本压缩包包含了一系列关于堆栈、树、链表和字符串的基本操作的代码例题,这些都是程序员必备的知识点。 首先,我们来看堆栈(Stack)。堆栈是一种“后进先出”(LIFO)的数据结构,常用于实现函数调用、表达式求值...
ARM技术是微处理器架构的重要组成部分,广泛应用于移动设备、嵌入式系统等领域。中断是操作系统中非常重要的一部分,它允许... Labroasse的COS等,这些资料可以为深入理解ARM操作系统中断堆栈提供理论基础和实现案例。
堆栈的基本概念 - **定义**:堆栈是一种特殊的线性数据结构,其特点是只允许在一端进行插入或删除操作,通常称为栈顶(top)。堆栈遵循后进先出(LIFO, Last In First Out)的原则。 - **用途**:在程序设计中,堆栈被...
这样的设计就模拟了堆栈的基本操作:压栈(Push)和弹栈(Pop)。 描述中提到的“堆栈动作机”可能是一个特定的程序或者模块,它使用LabVIEW来实现堆栈的操作,并可能包含了其他与之相关的功能,如错误处理、数据...
在本篇文章中,我们将详细介绍如何在MIPS中实现基本的堆栈操作,并通过一个具体的例子——字符串反转程序来展示这些操作的实际应用。 #### 堆栈指针与初始化 在MIPS架构中,寄存器$29通常被用作堆栈指针寄存器($sp...
本文将深入探讨MIPS体系结构的基本概念,以及在该架构下如何进行堆栈操作。 首先,让我们了解MIPS体系架构的核心组成部分。MIPS架构主要包括以下几个部分: 1. **寄存器**:MIPS处理器有32个通用寄存器,分别命名...