package ldm;
import java.util.*;
class Node<T> {
T data;
Node<T> next;
public Node(Node<T> n){
next=n;
}
public Node(T obj,Node<T> n){
data=obj;
next=n;
}
public T getData() {
return data;
}
public Node<T> getNext(){
return next;
}
}
class linkStack<T>{
private Node<T> top;
private int length;
public linkStack() {
length=0;
top=null;
}
public void push(T obj) {
top=new Node<T>(obj,top);
length++;
}
public T pop() {
if(top==null) {
System.out.println("栈已空,无法删除元素!");
return null;
}
T x=top.data;
top=top.next;
length--;
return x;
}
public T getHead(){
if(top==null) {
System.out.println("栈已空,无法读取元素!");
return null;
}
return top.data;
}
public boolean isEmpty() {
return top==null;
}
public int size() {
return length;
}
public void nextOrder() {
Node<T>p=top;
while(p!=null) {
System.out.println(p.data);
p=p.next;
}
}
public void clear() {
top=null;
}
}
public class Main {
public static void main(String[] argc) {
linkStack<Integer>L=new linkStack<Integer>();
int a[]= {23,56,12,49,35};
for(int i=0;i<a.length;i++) L.push(a[i]);
System.out.println("栈中的数据元素为: ");
L.nextOrder();
L.push(9999999);
System.out.println("执行插入操作后的栈中的数据元素为: ");
L.nextOrder();
L.pop();
System.out.println("执行删除操作后的栈中的数据元素为: ");
L.nextOrder();
}
}
链栈的基本操作-java实现
猜你喜欢
转载自blog.csdn.net/qq_41061455/article/details/80816096
今日推荐
周排行