loseyou

导航

我的STL之旅 MyStack

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> 
using namespace std;

/*
    push(int item)
    int pop()
    top() 返回stact中的下一个元素
    s.top()=12;
    设置顶层元素
    返回对其引用 
*/
const int N=10;
const int AN=5; 
int size;//记录大小 
int *stack;//存储数据 
int top;//记录顶端元素 

void push(int item)
{
    if(top==size){
        int *a=new int[size+AN];
        for(int i=0;i<size;i++){
            a[i]=stack[i];
        }
        stack=a;
    }
    stack[top++]=item;
}

int pop()
{
    if(top>0)
    return stack[--top];
}

int &ttop()
{
    if(top==size){
    int *a=new int[size+AN];
    for(int i=0;i<size;i++){
        a[i]=stack[i];
    }
    stack=a;
    }
    return stack[top++];
}

int main()
{
    top=0;
    stack=new int[N];
    size=N;
    for(int i=0;i<2*N;i++)
    {
        push(i);
    }
    cout<<"top: "<<top<<endl;
    cout<<"pop() "<<pop()<<endl;
    ttop()=77;
    for(int i=0;i<top;i++){
        cout<<stack[i]<<" ";
    }
    return 0;
} 

 

posted on 2015-03-05 19:50  loseyou  阅读(138)  评论(0)    收藏  举报