`

用数组(顺序表)实现栈的常用操作

 
阅读更多
/*
  用数组(顺序表)实现栈的常用操作
*/
#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];
}


分享到:
评论

相关推荐

    50个必会的数据结构及算法实现源码

    问题:用数组实现一个顺序栈 问题:用链表实现一个链式栈 队列 问题:用数组实现一个顺序队列 问题:用链表实现一个链式队列 问题:实现一个循环队列 递归 问题:编程实现斐波那契数列求值f(n)=f(n-1)+f(n-2) ...

    常用数据结构java实现

    采用java实现,实现了常用的数据结构,包括顺序表、链表、队列、栈(数组实现和链表实现)、二叉树(二叉排序树)、图(深度优先、广度优先)

    java常用数据结构

    包含数据结构常用的知识:顺序表(数组实现和链表)、栈和队列的顺序实现和链式实现,二叉树的实现和遍历、常用的排序算法

    JavaScript数据结构学习之数组、栈与队列

    数组是平时使用最常用的数据结构,在JavaScript中数组是动态的分配大小,在这里我不会介绍JavaScript里面数组的所有的方法,而是针对数据结构这个方向谈谈所用到的方法。 创建和初始化数组 //创建空数组 var array =...

    java二叉树算法源码-DataStructure:常用数据结构及其算法的Java实现,包括但不仅限于链表、栈,队列,树,堆,图等经典数据结构

    本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构,持续更新中... 目前,该项目具体包括如下内容: 单向链表的数据结构及其相关算法:单向链表结构包含两...

    【Java数据结构与算法】稀疏数组

    顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。 链式存储的线性表称为链表,链表中的储存元素不一定是连续的,元素节点种存放数据元素以及相邻元素的地址信息。 线性结构常见的有:数组,队列,链表和栈...

    常用的数据结构.doc

    链表 (Linked List) 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链 表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成, 结点可以在运行时动态生

    【03-流程控制与数组】

    •数组最常用的用法就是访问数组元素,包括对数组元素赋值和访问数组元素的值,访问数组元素是通过在数组引用变 量后紧跟一个方括号([ ]),方括号里是数组元素的索引值。 •Java语言的数组索引是从0开始的,...

    python-数据结构-书.docx

    Python数据结构:介绍Python中常用的数据结构,包括列表、元组、字典、集合等,以及它们的特点、使用方法、操作等。 3. 算法基础知识:介绍算法的基本概念、分类、特点等内容,包括排序、查找、递归、分治等。 4. ...

    数据结构习题答案(全部算法)严蔚敏版

    8.2.3 索引顺序表的查找 8.3 动态查找表 8.3.1 二叉排序树和二叉平衡树 8.3.2 B-树和B+树 8.4 哈希表及其查找 8.4.1 哈希表与哈希函数 8.4.2 构造哈希函数的常用方法 8.4.3 解决冲突的主要方法 8.5 哈希表...

    【蓝桥杯】必备的java数据结构和常用方法

    顺序表的实现静态数组动态数组2.链表的实现二.栈三.队列四.串StringString StringBuffer 和 StringBuilder五.树和二叉树六.哈希表七. 图邻接矩阵邻接表 一.线性表 1.顺序表的实现 静态数组 java只有在为数组分配变量...

    数据结构-线性表-xmind思维导图

    串、栈、队列的区分度在于数据的运算和逻辑结构,而他们的存储结构常用的都是顺序表和链表。 广义表和数组都是更抽象的线性表,数组对数据元素要求更严苛,广义表则是放开了数据元素的限定。他们都可以是递归定义,...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...

    嵌入式开发笔记

    · 顺序表 · 链表 · 图 · 哈希表 · 队列 · 查找和排序算法 · 栈 · C语言的实现 · 树 嵌入式Linux项目开发流程 · Linux开发环境搭建 · 项目开发流程 · 产品需求分析和选型 · 硬件平台 · 驱动开发 · ...

    数据结构02331(苏仕华)

    第四节 顺序表和链表的比较 第三章 栈和队列 第一节 栈 第二节 栈的应用举例 第三节 队列 第四节 栈和队列的应用举例 第四章 多维数组和广义表 第一节 多维数组和运算 第二节 矩阵的压缩存储(默认按行优先存储) 第...

    javascript入门笔记

    使用场合:任意数字与1做按位与操作,可以判断奇偶性,结果为1,则为奇数,否则为偶数 0 :0 1 :1 2 :10 3 :11 4 :100 5 :101 5 & 1 101 001 ========== 001 4 & 1 100 001 ==== 000 2、按...

    软件工程之专题九:数据结构知识

    栈也可以用链表实现,链式存储结构的栈简称链栈。若同时需两个以上的栈,则最好采用这种结构。对于栈上的操作,总结如下,大家可以仔细看一下这些程序,一个大的程序都是由一些对数据结构的小的操作组成的。 顺序...

    传智播客扫地僧视频讲义源码

    16_友元函数实现操作符重载知识总结 17_重载等号操作符_传智扫地僧 18_数组类小案例_操作符重载需求 19_数组类小案例_重载[]_传智扫地僧 20_数组类小案例_重载等号_传智扫地僧 21_数组类小案例_重载==和!= 22_作业 ...

Global site tag (gtag.js) - Google Analytics