静态数组实现栈

来源:互联网 发布:mac finder 侧边栏 编辑:程序博客网 时间:2024/05/17 03:33
#define STACK_TYPE int


void push(STACK_TYPE value);


void pop();


STACK_TYPE top();


bool is_empty();


bool is_full();


void size();

头文件



#include<iostream>
#define STACK_SIZE 10
#include"stack.h"
using namespace std;
int top_element = -1;


static STACK_TYPE stack[STACK_SIZE];






void push(STACK_TYPE value)
{
if (!is_full())
{
top_element++;
stack[top_element] = value;
cout << top_element << endl;
}


}


void pop()
{
top_element--;


}


STACK_TYPE top()
{
if (!is_full())
{
return stack[top_element];
}


}


bool is_empty()
{
return  top_element == -1;
}


bool is_full()
{
return  top_element == STACK_SIZE - 1;


}


void size()
{
std::cout << top_element+1 <<std:: endl;
}


函数实现:


在push和pop时注意操作顺序:

push时先对栈顶加一操作,即使程序获得对内存的掌控权,这也体现了内存分配的本质是分配对内存的暂时性的掌控权,因此当需要读出数据时,得先把数据都出来,然后对指针减一。

0 0
原创粉丝点击