栈的基本操作

原创 2018年04月15日 02:08:08
//////.h
#define MAX_SIZE 1024
typedef int DataType; 
typedef struct Stack 
{ 
	DataType _array[MAX_SIZE]; 
	int _top; // 表示有效元素个数 表示栈顶位置 
//	int _capacity; // 底层空间的总大小 
}Stack; 

void StackInit(Stack* s); 

// 入栈 
void StackPush(Stack* s, DataType data); 

// 出栈 
void StackPop(Stack* s); 

// 获取栈顶元素 
DataType StackTop(Stack* s); 

// 有效元素的个数 
int StackSize(Stack* s); 

// 检测栈是否为空 
int StackEmpty(Stack* s); 

#include"Stack.h"
#include<assert.h>
#include<stdio.h>

void StackInit(Stack* s)
{
	assert(s);
	s->_top = 0;
} 

// 入栈 
void StackPush(Stack* s, DataType data)
{
	assert(s);
	if(MAX_SIZE == s->_top)
		printf("栈已满,放不了!!!");
	s->_array[s->_top++] = data;

}

// 出栈 
void StackPop(Stack* s)
{
	if(StackEmpty(s))
		return;
	s->_top--;
}

// 获取栈顶元素 
DataType StackTop(Stack* s)
{
	assert(s);
	assert(!StackEmpty(s));
	return s->_array[s->_top-1];
}

// 有效元素的个数 
int StackSize(Stack* s)
{
	assert(s);
	return s->_top;
}

// 检测栈是否为空 
int StackEmpty(Stack* s)
{
	assert(s);
	return s->_top == 0;
}


/////.c

void TestStack()
{
	Stack s;
	StackInit(&s);
	StackPush(&s,1);
	StackPush(&s,2);
	StackPush(&s,3);
	StackPush(&s,4);
	StackPush(&s,5);
	printf("top = %d\n",StackTop(&s));
	printf("Size = %d\n",StackSize(&s));
	StackPop(&s);
	StackPop(&s);
	printf("top = %d\n",StackTop(&s));
	printf("Size = %d\n",StackSize(&s));
}
int main()
{
	TestStack();
	system("pause");
	return 0;
}

栈的基本操作

把栈的基本操作写成了一个小小的子系统,仅供参考/* 栈结构的栈底元素的next域为空 栈顶的next域指向第二个元素位置 */ #include #include typedef char...
  • qq_38504396
  • qq_38504396
  • 2017-11-02 18:03:45
  • 52

栈::操作

http://www.w3.org/TR/html4/strict.dtd">     Untitled Document    创建一个栈结构,实现弹出及压入操作。  以下内容为用链表实现栈结构  ...
  • beimuaihui
  • beimuaihui
  • 2008-02-21 19:13:00
  • 337

链栈的基本操作实现(c语言)

#include #include typedef int ElemType; typedef struct linknode { ElemType data; struct link...
  • lidekun9132
  • lidekun9132
  • 2016-10-12 18:37:04
  • 5184

c++实现栈的基本操作

栈的定义    栈(Stack)又称堆栈,是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。 栈有两种实现的方式。一种是顺序存储,和数组类似;一种是链式存储,和单链表类似。650) ...
  • windyblankboy
  • windyblankboy
  • 2016-06-01 19:01:20
  • 3534

栈的基本操作及实现

#include #include #include #include typedef int ElementType; //定义结点 typedef struct LinkNode{ ...
  • qq_28301007
  • qq_28301007
  • 2017-11-02 13:44:39
  • 65

栈操作

栈,一种线性表,先进后出,重要的数据结构之一。最近在写语法分析器的时候,在求FIRSTVT和LASTVT的时候,发现自己栈操作方面挺薄弱的。故在此积累一下。 1.操作一维数组即将一维数组中的值入栈、出...
  • Summer_lover_
  • Summer_lover_
  • 2017-11-29 14:18:07
  • 75

栈的C语言基本操作

数据结构之c语言实现顺序栈的基本操作   这是数据结构中栈的基本操作的代码。栈是一个后进先出的线性结构,也有顺序栈和链栈两种结构,这里采用顺序储存结构。 包括建立栈、元素进栈、取栈顶元素等基本...
  • xinianbuxiu
  • xinianbuxiu
  • 2016-11-24 00:01:47
  • 562

[数据结构]栈的基本操作

栈的基本操作
  • napoay
  • napoay
  • 2015-11-23 08:42:56
  • 3545

c++实现栈的各种操作

以下是c++实现的栈的各种操作: #include using namespace std; // 定义一个节点的结构 typedef struct Node { int data...
  • liuwei271551048
  • liuwei271551048
  • 2014-05-10 21:19:21
  • 664

栈的基本操作实现-c/c++

栈 stack 概念:限定仅在表尾进行插入和删除操作的线性表
  • SUNSHANGJIN
  • SUNSHANGJIN
  • 2014-08-11 17:11:59
  • 2011
收藏助手
不良信息举报
您举报文章:栈的基本操作
举报原因:
原因补充:

(最多只允许输入30个字)