`
hnjzsyjyj
  • 浏览: 28785 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

顺序栈的实现 C++

 
阅读更多
【程序代码】
/***顺序栈的实现***/

#include<iostream>
using namespace std;
const int StackSize=100;

struct SqStack {//顺序栈结构
	char data[StackSize];//栈可用的最大容量
	int top;//栈顶指针
};

void InitStack(SqStack &S) {//顺序栈的初始化
	S.top=-1;
}

void Push(SqStack &S, char e) {//顺序栈的入栈
	if (S.top==StackSize-1) {//栈满
		cerr<<"Stack overflow!"<<endl;
		exit(1);
	}
	S.top++;
	S.data[S.top]=e;
}

char Pop(SqStack &S) {//顺序栈的出栈
	if (S.top==-1) {//栈空
		cerr<<"Stack is empty!"<<endl;
		exit(1);
	}
	return S.data[S.top--];
}

char GetTop(SqStack S) {//取顺序栈的栈顶元素
	if(S.top==-1) {
		cerr<<"Stack is empty!"<<endl;
		exit(1);
	}
	return S.data[S.top];//返回栈顶元素的值
}

int isFull(SqStack S) {//判断栈是否已满,若是则返回1,否则返回0,此函数为顺序栈所特有
	return S.top==StackSize-1;
}

int isEmpty(SqStack S) {//判断栈是否为空,若是则返回1,否则返回0
	return S.top==-1;
}

void ClearStack(SqStack &S) {//清空栈。在顺序存储方式下,同初始化栈的算法相同
	S.top=-1;
}

int main() {
	SqStack S;
	InitStack(S);

	cout<<"请输入顺序栈的元素个数:"<<endl;
	int n;//n<=StackSize
	cin>>n;

	cout<<"请输入顺序栈的元素值:"<<endl;
	for(int i=0; i<n; i++) {
		cin>>S.data[i];
		Push(S,S.data[i]);
	}

	cout<<"从栈顶依次输出的顺序栈的元素值:"<<endl;
	for(int i=0; i<n; i++) {
		cout<<Pop(S)<<" ";
	}

	return 0;
}


 

分享到:
评论

相关推荐

    顺序栈实现

    在这个场景中,我们将探讨如何使用C++模板来创建一个顺序栈。 首先,我们需要定义一个顺序栈类,它通常包含两个核心部分:存储元素的数组和指向栈顶的指针。在C++中,可以使用动态数组(如`std::vector`)或固定...

    顺序栈的c++实现

    用c++类模板实现顺序栈,没有运用动态数组,适合初学者

    顺序栈(C++)

    在C++中实现顺序栈,我们需要理解栈的基本概念、栈的操作以及如何利用C++的动态内存管理来创建一个可扩展的数组来存储栈元素。 栈是一种后进先出(LIFO,Last In First Out)的数据结构,它的主要操作包括压栈...

    C++模版类实现顺序栈、链栈

    本项目中,模版类被用来实现两种常见的数据结构——顺序栈和链栈,这两种栈都遵循后进先出(LIFO)的原则。下面我们将详细探讨这些知识点。 首先,**顺序栈**是基于数组实现的栈。在C++中,可以定义一个名为`...

    顺序栈的常用操作 C++

    C++实现顺序栈的常用操作,定义了一个顺序栈的类,做了一个循环菜单,包括:创建顺序栈,入栈,出栈,清空栈,计算顺序栈的元素个数,判断顺序栈是否为空,打印栈等操作。

    数据结构顺序栈基于C++

    在这个基于C++的项目中,我们将会探讨顺序栈的原理和其在C++中的具体实现。 顺序栈是一种线性数据结构,它的元素按照先进后出(First In Last Out, FIFO)的原则进行存储和操作。在顺序栈中,元素存储在一块连续的...

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

    本主题将深入探讨顺序栈的实现,包括C、C++和Java三种编程语言的源码分析。 首先,我们从C语言的角度来理解顺序栈。在C中,我们通常使用数组作为基础数据结构来实现顺序栈。以下是一个简单的顺序栈定义: ```c #...

    利用顺序栈实现中缀表达式的计算问题

    本资源是数据结构中利用顺序栈计算中缀表达式的一个C++代码,仅供参考,不足之处请大神们指正.

    顺序栈验证试验

    顺序栈是基于数组实现的,其特点是元素的插入(压栈)和删除(弹栈)操作都发生在栈顶,遵循“后进先出”(LIFO,Last In First Out)的原则。这个试验的目的就是帮助我们熟悉和验证顺序栈的基本操作。 顺序栈的...

    顺序栈的实现:基于C++对顺序栈的基础实现(C++)

    在C++中,我们可以利用数组或者动态内存分配来实现顺序栈。本篇将深入探讨如何用C++来实现一个基本的顺序栈。 首先,我们需要了解顺序栈的基本操作,主要包括: 1. 初始化栈:创建一个空的栈结构,通常通过分配一...

    顺序栈的表示和实现源码

    在顺序栈中,元素存储在一块连续的内存区域中,通过数组或动态数组来实现。顺序栈的操作通常包括初始化、判断栈是否为空、获取栈顶元素、进栈(压栈)、出栈(弹栈)以及销毁栈等。下面我们将详细讨论这些知识点。 ...

    顺序栈C++程序源代码

    根据给定的信息,本文将对“顺序栈C++程序源代码”进行详细的解析与知识点的归纳总结。...以上是对“顺序栈C++程序源代码”的详细解析,希望能帮助读者更好地理解顺序栈的实现原理及其在C++中的具体应用。

    c++顺序栈的实现demo

    在计算机编程中,栈...以下是一个简单的顺序栈实现的示例说明: 首先,我们定义一个顺序栈类SequentialStack,并在其构造函数中初始化栈的大小和栈顶位置。栈的大小可以根据需要设定,或者默认为一个合理的初始值。

    C++实现顺序栈(数据结构)

    本程序通过C++实现数据结构中顺序栈,主要功能有压栈、弹栈、遍历、栈空间拓展等,具体功能函数如下: MStack(int tCapacity,bool& flag); ~MStack(); void Clear(); bool Empty() const; bool Push(ElemType&)...

    顺序栈的实现

    解决数据结构中利用C++来实现顺序栈的问题,

    使用顺序栈实现括号匹配

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

    栈的实现顺序栈

    栈的顺序栈形式,简易的实现,push() pop() top() size() empty()

    C++ 顺序栈和链式栈的实现 数据结构 类模板

    以下是一个简单的顺序栈实现: ```cpp template class SequentialStack { private: int top; // 栈顶指针 int capacity; // 栈的容量 T* elements; // 存储元素的数组 public: SequentialStack(int size) : ...

    顺序栈、链栈将10进制转为2、8、16进制源码

    本话题聚焦于一种特定的应用——使用C++实现的顺序栈和链栈,将10进制数转换为2、8、16进制。这里我们将深入探讨顺序栈和链栈的概念,以及它们如何应用于不同进制之间的转换。 首先,顺序栈是一种基于数组的数据...

    顺序栈入栈出栈实现源码

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

Global site tag (gtag.js) - Google Analytics