stack 顺序栈的相关操作

 代码部分,分成了一个头文件中包含了相关的操作,cpp文件中直接调用。

1.初始化一个栈;
2.测试初始化后的栈是否为空;
3.测试一个栈是否已满;
4.在栈的顶端插入一个元素。简称,入栈;该操作相当于在栈的最后一个位置栈顶位置插入一个新的元素。
5.删除栈的栈顶元素;
6.取当前栈顶元素;
code:
// stack.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "stack.h"
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
 extern int top;
 Initials(top);
 Insert(top,4);
 Insert(top,1);
 cout << GetStackTop(top) << endl;
 DeleteTopElem(top);
 cout << GetStackTop(top) << endl;
 return 0;
}


// stack.h
#ifndef STACK_H_
#define STACK_H_

//
// 初始化一个栈;
#define MaxSize 1000
int stack[MaxSize];
int top;

// 初始化栈的操作是为了令栈的栈顶指针指向-1;
void Initials(int& top)  
{
 top == -1;
}


//
// 测试一个栈是否为空;
bool IsEmpty(int& top)
{
 return top == -1;
}

//
// 测试栈是否已经满了
bool IsFull(int& top)
{
 return top == MaxSize - 1;
}

//
// 删除栈顶元素;
void DeleteTopElem(int& top)
{
 if (IsEmpty(top))
 {
  throw"栈是空的";
 }
 else
 {
  top --;  
 }
}

//
// 在栈的栈顶插入一个元素;
void Insert(int& top,int elem)
{
 if (IsFull(top))
 {
  throw"栈满了!";
 }
 else
 {
  stack[++ top] = elem;
 }
}

//
// 获得当前栈顶元素;
int GetStackTop(int& top)
{
 if (!IsEmpty(top))
 {
  return stack[top];
 }
}

#endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值