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]); }