`
hslx111
  • 浏览: 4286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

C实现顺序栈

    博客分类:
  • C
阅读更多

昨天写个程序用到栈,奈何老师只让用C,现成的STL不能用,只好自己写一个了,发现顺序栈写起来比链栈要简单一些.

 

stack.h

/*
** Header file for stack
** Written by santos at 2013.3.24
*/
#ifndef STACK_H
#define STACK_H 

#define STACK_SIZE 100
typedef int ElementType;

typedef struct
{
	ElementType data[STACK_SIZE];
	int top;
}Stack;

void InitStack(Stack *s);

int IsEmpty(Stack *s);

int IsFull(Stack *s);

void Push(Stack *s, ElementType element);

ElementType Pop(Stack *s);

ElementType GetTop(Stack *s); 

#endif

 stack.c

/*
** Definition file for stack
** Written by santos at 2013.3.24
*/
#include "stack.h"
#include <stdio.h>

void InitStack(Stack *s)
{
	s->top = -1;
}

int IsEmpty(Stack *s)
{
	if (s->top == -1)
		return 1;
	else
		return 0;
}

int IsFull(Stack *s)
{
	if (s->top == STACK_SIZE - 1)
		return 1;
	else 
		return 0;
}

void Push(Stack *s, ElementType element)
{
	if (!IsFull(s))
	{
		s->top++;
		s->data[s->top] = element;
	}
	else
		printf("The stack is full!\n");
}

ElementType Pop(Stack *s)
{
	if (!IsEmpty(s)) 
		return s->data[s->top--];
	else
	{
		printf("The stack is empty!\n");
		return -1;
	}
}

ElementType GetTop(Stack *s)
{
	if (!IsEmpty(s))
		return s->data[s->top];
	else
	{
		return -1;
	}
}

 

0
6
分享到:
评论

相关推荐

    【数据结构】用c实现顺序栈

    用c实现顺序栈 c实现顺序栈 c顺序栈 顺序栈实现 用c实现顺序栈 c实现顺序栈 c顺序栈 顺序栈实现

    用 C 语言实现顺序栈的示例C&C.zip

    用 C 语言实现顺序栈的示例。它包含了顺序栈的各种基本操作,包括初始化、判断是否为空、获取长度、清空、销毁、入栈和出栈。 以下是代码的主要功能: InitStack:初始化顺序栈,分配内存空间。 StackEmpty:判断栈...

    C 语言实现顺序栈进行括号匹配.pdf

    顺序栈括号匹配的代码在这个示例中,我们定义了一个顺序栈结构 `Stack`,包含一个字符型数组 `data` 和一个整型变量 `top`,用于表示栈顶指针。然后我们实现了一些栈的基本操作函数,如 `initStack`、`isEmpty`、`is...

    顺序栈实现

    C++ 是一种通用的编程语言,以其强大的模板系统而闻名,使得在C++中实现各种数据结构变得非常灵活。在这个场景中,我们将探讨如何使用C++模板来创建一个顺序栈。 首先,我们需要定义一个顺序栈类,它通常包含两个...

    顺序栈实现括号配对

    顺序栈实现括号配对 在计算机科学中,括号配对是指在一个表达式中,各种括号之间的匹配关系。例如,在一个数学表达式中,我们可以使用小括号、中括号和大括号来表示不同的操作优先级。然而,在实际应用中,我们需要...

    顺序栈的基本操作实现

    顺序栈的基本操作的实现,这个程序中演示了顺序栈的初始化、顺序栈的创建、删除、查找以及输出等功能。使用c语言所写。

    C语言 栈的实现,包含顺序栈和链栈,亲测可用

    本文将详细讨论在C语言中如何实现栈,包括顺序栈和链栈,并基于提供的文件名来解析它们的实现。 1. **顺序栈**:顺序栈是通过数组来实现的,其优点在于存储空间连续,访问速度快。`stack_array.c`和`stack_array.h`...

    栈的顺序存储结构C实现

    顺序栈的实现相对简单,但其性能受到内存分配和数组大小限制的影响。在处理大量数据或者需要高效动态扩展的情况下,可以考虑使用链式栈,即通过链表来实现栈。不过,对于小型项目和教学目的,顺序栈是一个很好的起点...

    用c语言来实现顺序栈

    标题中的“用C语言来实现顺序栈”是指利用C语言编程技术来构建一个数据结构——顺序栈。顺序栈是栈的一种实现方式,其中元素在内存中是连续存储的,类似于数组。栈是一种“后进先出”(LIFO)的数据结构,主要操作...

    数据结构——顺序栈的C语言实现

    在C语言中实现顺序栈,首先需要定义一个结构体来表示栈,通常包含两个部分:一个用于存储元素的数组和一个指示栈顶位置的整型变量。以下是一个简单的顺序栈结构体定义: ```c typedef struct { int* data; // 存储...

    顺序栈的各种基本操作

    顺序栈是一种基于顺序存储结构的栈,它通过数组来实现栈的功能。与链式栈不同,顺序栈中的元素是连续存储的,通常需要预分配一定的空间来存放栈中的元素。 #### 二、顺序栈的基本操作实现 1. **初始化顺序栈** - ...

    顺序栈入栈出栈实现源码

    ### 顺序栈入栈出栈实现源码解析 #### 一、基础知识介绍 在计算机科学领域,栈(Stack)是一种非常重要的线性数据结构之一,它遵循“后进先出”(Last In First Out, LIFO)的原则进行操作。栈支持两种主要的操作...

    顺序栈实现源码(C、C++、Java)

    在C中,我们通常使用数组作为基础数据结构来实现顺序栈。以下是一个简单的顺序栈定义: ```c #define MAX_SIZE 100 // 定义栈的最大容量 typedef int ElementType; // 定义栈元素的类型 typedef struct { Element...

    数据结构课程:顺序栈和链栈的实现

    ### 数据结构课程:顺序栈和链栈的实现 #### 栈的基本概念 栈是一种特殊的线性表,其特殊之处在于所有元素的插入和删除都只能在一端进行,这一端被称为栈顶(top),与之相对的一端称为栈底(bottom)。栈通常支持以下...

    顺序栈基本功能的C实现源代码

    根据提供的文件信息,我们可以总结出以下关于“顺序栈基本功能的C实现源代码”的相关知识点: ### 一、概述 顺序栈是一种线性表,它按照后进先出(Last In First Out, LIFO)的原则进行操作。在C语言中,顺序栈...

    使用顺序栈实现括号匹配

    这里我们讨论的主题是"使用顺序栈实现括号匹配",这是一个常见的算法问题,尤其在编译原理、数据结构和算法课程中经常出现。顺序栈是一种基本的数据结构,它具有操作简单、效率较高的优点,非常适合用于解决此类问题...

    C语言实现顺序栈.c

    C语言实现顺序栈 顺序栈的常规操作 Stack InitStack(); // 初始化栈 int StackFull(); // 判断栈满 int StackEmpty(); // 判断栈空 int StackLength(); // 求栈长(栈元素个数) int Push(); ...

    数据结构实验课之单链表类实现和顺序栈实现

    1、 定义顺序栈类。 2、 实现如下算法: 1) 创建顺序栈; 2)插入操作:向栈顶压入值为 x 的元素; 3) 删除操作: 弹出栈顶元素,将数据输出在屏幕上; 4) 存取操作:读取栈顶元素,将数据输出在屏幕上;。 3、 ...

    顺序栈相关算法

    2、 实现如下算法: 1)创建顺序栈; 2)插入操作:向栈顶压入值为 x 的元素; 3)删除操作:弹出栈顶元素,将数据输出在屏幕上; 4)存取操作:读取栈顶元素,将数据输出在屏幕上;。 3、 为了增强程序的可读性,...

    C语言-顺序栈实现十进制转换为二进制-八进制-十六进制

    ### C语言顺序栈实现十进制到二进制、八进制、十六进制的转换 #### 一、概述 本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将...

Global site tag (gtag.js) - Google Analytics