废话不多说,先上代码publicclassTest{publicstaticvoidmain(String[]args){LinkedStacklss=newLinkedStack (); for(Strings:"Phasersonstun".split(""))lss.push(s);Strings;while((s=lss.pop())!=null){System.out.println(s);}}}classLinkedStack{ privatestaticclassNode{Uitem;Nodenext;Node(){this.item=null;this.next=null;}Node(Uitem,Nodenext){this.item=item;this.next=next;}booleanend(){returnitem==null&&next==null;}}privateNodetop=newNode (); publicvoidpush(Titem){top=newNode(item,top); }publicTpop(){Tresult=top.item;if(!top.end())top=top.next;returnresult;}}程序经测试可以正常运行,这里采用链表来进行数据的传输,不过比较疑惑的一点是关于遍历的pop方法,哪里判断top不为空的时候指向下一个元素,但是我比较疑惑的是top默认指向的是链表尾端的next,之前的next应该已经覆盖掉了啊,为啥能找得到之前的nex节点呢?而且看一些教程上的便利都是从头节点遍历的,,,为什么能找到之前的next节点?求解惑,感激不尽
慕桂英3389331
慕尼黑8549860
相关分类