Java栈之链式栈存储结构的实现代码

  

<强> Java栈之链式栈存储结构实现

  

<强>一、链栈

  

采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈。

  

<强>二,栈的链式存储结构实现

        包com.ietree.basic.datastructure.stack;/* *   *链栈   *   *由ietree   * 2017/4/29   */公开课LinkStack{//定义一个内部类节点,节点实例代表链栈的节点   {私有类节点//保存节点的数据   私人T数据;//指向下个节点的引用   私人节点下;//无参构造器   公共节点(){   }//初始化全部属性的构造器   公共节点(T数据节点下){      这一点。数据=https://www.yisu.com/zixun/data;   这一点。下一个=下一个;      }      }//保存该链栈的栈顶元素   私人节点上;//保存该链栈中已包含的节点数   私人int大小;//创建空链栈   公共LinkStack () {//空链栈,顶级的值为null   顶级=零;      }//以指定数据元素来创建链栈,该链栈只有一个元素   公共LinkStack (T元素){      顶级=新节点(元素,零);   大小+ +;      }//返回链栈的长度   公共int长度(){      返回大小;      }//进栈   公共空间推动(T元素){//让顶级指向新创建的元素,新元素的下一个引用指向原来的栈顶元素   顶级=新节点(元素);   大小+ +;      }//出栈   公共T pop () {      节点oldTop=最高;//让前引用指向原栈顶元素的下一个元素   顶级=top.next;//释放原栈顶元素的下一个引用   oldTop。下一个=零;   大小,;   返回oldTop.data;      }//访问栈顶元素,但不删除栈顶元素   公共T peek () {      返回top.data;      }//判断链栈是否为空栈   公共布尔空(){      返回大?=0;      }//请空链栈   公共空间clear () {      顶级=零;   大?0;      }      公共字符串toString () {//链栈为空栈时   如果(空()){      返回“[]”;      其他}{      StringBuilder某人=new StringBuilder (“(”);   (节点电流=最高;当前!=零;当前=current.next) {      sb.append (current.data.toString () + ", ");      }      int len=sb.length ();   返回sb.delete (len - 2, len) .append (“]”) .toString ();   }      }      }      

<强>测试类:

        包com.ietree.basic.datastructure.stack;/* *   *由ietree   * 2017/4/29   */公开课LinkStackTest {      公共静态void main (String [] args) {      LinkStack堆栈=new LinkStack ();      stack.push (“aaaa”);   stack.push (“bbbb”);   stack.push(“预备”);   stack.push (“dddd”);   System.out.println(栈);      system . out。println(“访问栈顶元素:”+ stack.peek ());      system . out。println(“第一次弹出栈顶元素:”+ stack.pop ());      system . out。println(“第二次弹出栈顶元素:”+ stack.pop ());      system . out。println(“两次流行之后的栈:”+栈);      }      }      

程序输出:

        [dddd,预备,bbbb, aaaa级)   访问栈顶元素:dddd   第一次弹出栈顶元素:dddd   第二次弹出栈顶元素:预备   两次流行之后的栈:[bbbb, aaaa]      

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持。
  

Java栈之链式栈存储结构的实现代码