链式栈
class Stack2 extends onelink1{
private onelinknode top;
public Stack2() {
top=null;
}
public boolean isempty() {
return top==null;
}
public int get() {
if(!isempty()) {
return top.data;
}
else {
return -1;
}
}
public boolean push(int k) {
onelinknode q = new onelinknode(k);
q.next=top;
top=q;
return true;
}
public int pop() {
int k=-1;
if(!isempty()) {
k=top.data;
top=top.next;
}
return k;
}
}
class onelinknode{
public int data;
public onelinknode next;
public onelinknode(int k) {
data=k;
next=null;
}
public onelinknode() {
this(0);
}
}
class onelink1{
protected onelinknode head;
public onelink1(onelinknode h1) {
head=h1;
}
public onelink1() {
head=null;
}
public boolean isempty() {
return head==null;
}
public onelink1(int n) {
onelinknode rear,q;
if(n>0) {
int k=(int)(Math.random()*100);
head = new onelinknode(k);
rear=head;
for(int i=1;i<n;i++) {
k=(int)(Math.random()*100);
q=new onelinknode(k);
rear.next=q;
rear=q;
}
}
}
public int length() {
onelinknode p=head;
int i=0;
while(p!=null) {
i++;
p=p.next;
}
return i;
}
public void output() {
output(head);
}
public void output(onelinknode p) {
while(p!=null) {
System.out.print(p.data);
p=p.next;
if(p!=null)
System.out.print("->");
}
System.out.println();
}
public int get(int i) {
int j=1;
onelinknode p=head;
while(p!=null&&j<i) {
p=p.next;
j++;
}
if(j>i||p==null)
return 0;
return p.data;
}
```