`

用数组实现栈的基本操作

 
阅读更多
/*
  用数组(顺序表)实现栈的常用操作
*/
#include<stdio.h>

#include <stdlib.h>


//定义结构体
typedef struct Node
{
	 
     int data[20];
	 int top;
} SeqStack;

//函数操作声明
void SeqStackInit(SeqStack);//栈的初始化
bool SeqStackInitEmpty(SeqStack);//判断栈是否为空
void SeqStackPush(SeqStack,int);//入栈操作
int SeqStackPop(SeqStack);//出栈操作
int SeqStackGetPop(SeqStack);//取栈顶元素




int main(void)
{
	SeqStack s;//声明出结构体变量 

	SeqStackInit( s);

   return 0;
}

//初始化实现
void SeqStackInit(SeqStack s)
{
    s.top=-1;//如果空栈 声明-1然后++
}
//判断栈是否为空
bool SeqStackInitEmpty(SeqStack s)
{
      if(s.top==-1)
		  return true;
	  else
		  return false;
}
//入栈操作
void SeqStackPush(SeqStack s ,int val)
{
	if(20-1==s.top)
	{
	   printf("栈已满");
	   exit(-1);
	}
	else 
	{
	  s.data[++s.top]=val;
	}

}
//出栈操作
int SeqStackPop(SeqStack s)
{
	if(SeqStackInitEmpty(s))
	{
	   printf("栈为空");
	   exit(-1);
	}
   int val=s.data[s.top];
   s.top--;
   return val;
  
}
//取栈顶元素
int SeqStackGetPop(SeqStack s)
{
   if(SeqStackInitEmpty(s))
   {
     printf("空栈");
	 exit(-1);
   }
   return s.data[s.top];
}
 
分享到:
评论

相关推荐

    用数组实现对栈的基本操作

    用数组实现对栈的操作,如入栈,退栈,清空,输出等

    用数组实现一个栈

    在计算机科学中,栈是一种非常基础且重要的数据结构,它遵循“后进先出”(LIFO)的原则。...在实际应用中,更常见的做法是使用动态内存分配(如std::vector)或者C++标准库提供的std::stack容器来实现栈。

    数组模拟栈.rar

    数组模拟栈是计算机科学中...总的来说,这个压缩包提供了一个实践性的学习资源,帮助我们掌握如何用C语言实现基于数组的栈数据结构及其基本操作。通过阅读和分析代码,我们可以深化对数组和栈的理解,提升编程技能。

    基于动态数组的栈

    使用动态数组实现栈 以下是一个简单的动态数组栈实现: ```cpp #include class MyStack { private: int* arr; // 动态数组 int capacity; // 当前容量 int size; // 当前元素个数 public: // 构造函数 ...

    栈(入栈,出栈)的数组实现

    用数组实现对栈的基本操作:出栈、入栈

    数组模拟栈

    在数组模拟栈的示例中,可能包含了一些练习题或者示例代码,比如用数组实现栈的这些基本操作,并进行测试。这些练习可以帮助我们深入理解栈的工作原理,以及如何在实际编程中应用这个数据结构。在分析和解决算法问题...

    利用数组实现双端栈,插入,删除

    在数组中实现栈,我们可以直接使用数组的索引来表示栈顶的位置。对于双端栈,我们需要在数组的两端都维护一个栈顶指针,一个指向前端,一个指向后端。 数组实现双端栈的步骤如下: 1. 初始化:创建一个固定大小的...

    数组顺序栈.rar

    数组顺序栈是计算机科学中数据结构的基础概念,它是一种基于数组实现的栈数据结构。栈是一种后进先出(LIFO)的数据结构,通常用于执行递归操作、内存管理、表达式求值等任务。在数组顺序栈中,元素的添加(压栈)和...

    使用一个数组实现三个栈的数据结构

    本话题聚焦于使用一个数组实现三个栈的数据结构。这样的设计旨在优化内存使用,提高效率,并允许在数组未满的情况下,任意一个栈都可以持续进行push操作。 首先,让我们理解栈的基本概念。栈是一种线性数据结构,...

    JAVA基于静态数组实现栈的基本原理与用法详解

    ArrayStack类实现了栈接口,使用静态数组实现栈的基本操作。 ```java package Stack; import Array.DynamicArray; public class ArrayStack&lt;E&gt; implements Stack&lt;E&gt; { DynamicArray&lt;E&gt; array; //构造函数,传入栈...

    Java中使用数组实现栈数据结构实例

    以下是一个简单的数组实现栈的Java代码示例: ```java public class Stack&lt;E&gt; { private Object[] stack; private static final int INIT_SIZE = 2; private int index; public Stack() { stack = new Object...

    循环数组实现队列

    循环数组实现队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列的操作受限制,和栈一样,它是一种操作受限制的线性表。进行插入操作的...

    C语言数组-C语言实现使用动态数组来构建栈结构.zip

    以上就是用C语言的动态数组实现栈结构的基本过程。通过这种方式,我们可以在运行时灵活地管理内存,适应不同的数据需求,从而实现高效的栈操作。在实际编程中,还可以考虑添加错误处理和边界条件检查,以增强代码的...

    链表-使用Python基于链表实现数组栈.zip

    在Python中,我们可以直接使用列表来实现栈,但由于列表内部实现为动态数组,对于频繁的尾部操作(如push和pop),效率可能不如专门的链表实现。因此,题目中提到的“链表-使用Python基于链表实现数组栈”就是将栈的...

    利用数组实现栈(Java实现)

    这种通过数组实现栈的方法是学习其他更复杂数据结构的基础,例如,通过理解和掌握栈的原理,我们就可以进一步学习如何实现队列、链表、树等其他数据结构。 本文所介绍的利用数组实现栈的方法,提供了一个简明的示例...

    vc++迷宫 vc++迷宫 用数组实现

    在二维数组中,可以通过递归函数来实现,使用栈来保存当前位置。 2. **广度优先搜索(BFS, Breadth-First Search)**:BFS使用队列来存储待访问的节点,确保找到最短路径。在迷宫问题中,BFS可以找到从起点到终点的...

    数组实现线性表-VS2015.zip_数组实现线性表格

    3. **基本操作**: - **插入操作**:在线性表的末尾插入元素,需要检查是否已达到数组的最大容量。如果未满,将新元素添加到数组末尾,并增加长度;否则,可能需要考虑动态扩展数组或抛出异常。 - **删除操作**:...

    数组栈的实现(Go)

    数组栈是一种基于数组的数据结构,它实现了栈的基本操作,如入栈(Push)、出栈(Pop)、检查栈是否为空(IsEmpty)以及查看栈顶元素(Top)。在Go语言中,由于其内置的切片(slice)特性,可以方便地创建和操作数组...

    数据结构C++版--栈的实现及基本操作

    本主题聚焦于“数据结构C++版--栈的实现及基本操作”,我们将深入探讨栈这种特殊的数据结构以及如何用C++来实现它。 栈是一种线性数据结构,遵循“后进先出”(LIFO)的原则。这意味着最后插入的元素(称为顶元素...

    数据结构(C语言)(严蔚敏)各章节基本操作实现

    例如,对于栈和队列的操作,你可以看到如何使用数组实现push、pop、peek等方法;对于树和图,会有建立、遍历和修改结构的示例代码。 总的来说,这个资料集合为学习者提供了丰富的实践素材,是深入学习数据结构和...

Global site tag (gtag.js) - Google Analytics