当前位置: 首页 > 后端技术 > Java

Java_LinkedStack链栈分享

时间:2023-04-01 21:29:15 Java

Java_LinkedStack链栈共享具体内容的解释写在注释中push(Telement);//用于表示栈的方法publicTpop();//用于表示栈的方法publicbooleanisEmpty();//用于判断栈是否为空的方法}}LinkedStackinterfaceImplementclassLinkedNode{privateTdata;//declaredataprivateLinkedNodenext;//declarenextpublicLinkedNode(Ti){//定义参数化构造函数data=i;下一个=空;}publicLinkedNode(){//定义无参构造函数data=null;下一个=空;}//数据的getter和setter以及下一个publicTgetData(){returndata;}publicvoidsetData(T元素){数据=元素;}publicLinkedNodegetNext(){返回下一个;}publicvoidsetNext(LinkedNodesuccessor){next=successor;}}publicclassLinkedStackimplementsStackLnterface0{//通过重新实现多个接口protectedLinkedNodetop;//声明栈顶指针publicLinkedStack(){//栈初始化,初始化一个空栈LinkedNodefirst=newLinkedNode();//定义一个空节点top=first;//把空节点放在最开始}publicvoidpush(Telement){//用来表示入栈方法LinkedNodes=newLinkedNode(element);//用s表示输入元素s.setNext(top);//让新进入的元素指向它的前一个元素top=s;//top指针指向s上面}publicTpop(){//用来表示out栈的方法if(isEmpty())//首先判断栈是否为空,如果为空则抛出异常thrownewRuntimeException("stackisempty");Ttop_node=top.getData();//定义一个记录top指针指向元素的变量top=top.getNext();//出栈后,top指针指向下一个要出栈的元素。returntop_node;//返回出栈时读取的元素}publicbooleanisEmpty(){//判断栈是否为空的方法if(top==null)//如果栈顶指针指向null,则返回true;//表示栈为空elsereturnfalse;//否则栈不为空}publicTgetTop(){//用于表示当前指针指向元素的方法if(isEmpty())//首先判断栈是否为空,如果为空则抛出异常thrownewRuntimeException("栈为空");Ttop_node=top.getData();//定义一个变量,记录top指针指向的元素returntop_node;//返回top指向的元素}publicvoidgetLz(){//用于显示的方法当前链接栈LinkedNodea=top;//此时定义a替换top指针while(a.getNext()!=null){//当a的引用字段不为null时,System.出去。print(a.getData()+"\n");//此时输出a的数据字段a=a.getNext();//向下循环a,让元素一个一个显示}}}classShiJian1{//实践类publicstaticvoidmain(String[]args){LinkedStacklinked=newLinkedStack();//实现T范式为int类型//输入要添加的元素链接栈linked.push(6);linked.push(7);linked.push(8);linked.push(9);链接.getLz();//进行一次入栈操作System.out.println("进行一次入栈操作获取Element"+linked.pop());System.out.println("再执行一次入栈操作得到元素"+linked.pop());链接.getLz();System.out.println("此时top指针指向元素"+linked.getTop());}}以上运行结果就是本文的全部内容,如果对你有帮助,请点个赞,对我来说真的很重要