数据结构----栈

1.栈的定义

static final int MAXLEN=50;

class DATA2
{
    String name;
    int age;
}

class StackType
{
    static final int MAXLEN=50;
    DATA2[] data = new DATA2[MAXLEN+1];            // 数据元素
    int top;                                                                //栈顶
}

2.初始化栈结构

StackType STInit()
{
    StackType p;

    if((p=new StackType())!=null)                //  申请栈内存
    {
        p.top=0;                                        //设置栈顶为0
        return p;                                    //        返回指向栈的引用
    }
    return 0;
}

3.判断栈空

boolen STIsEmpty(StackType s)
{
    boolean t;
    t=(s.top==0);
    return t;
}

4.判断栈满

boolean STIsFull(StackType s)
{
    boolean t;
    t=(s.top==MAXLEN);
    return t;
}

5.清空栈

void STClear(StackType s)
{
    s.top=0;
}

6.释放空间

void STFree(StackType s)
{
    if(s!=null)
    {
        s=null;
    }
}

7.入栈

int PushST(StackType s,DATA2 data)
{
    if((s.top+1)>MAXLEN)
    {
        System.out.print("栈溢出!
");
        return 0;
    }
    s.data[++s.top]=data;        //将元素入栈
    return 1;
}

8.出栈

DATA2 PopST(StackType s)
{
    if(s.top=0)
    {
        System.out.print("栈为空!
");
        return 0;
    }
    return (s.data[s.top--]);
}

9.读结点数据

DATA2 PeekST(StackType s)
{
    if(s.top==0)
    {
        System.out.print("栈为空!
");
        System.exit(0);
    }
    return (s.data[s.top]);
}

  

  

  

  

 

原文地址:https://www.cnblogs.com/mathe/p/4465264.html