数据结构 - 栈(链表实现栈的入栈出栈)
生活随笔
收集整理的這篇文章主要介紹了
数据结构 - 栈(链表实现栈的入栈出栈)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)完鏈表和棧,數(shù)組模擬棧學(xué)完后,自己根據(jù)鏈表寫(xiě)了個(gè)鏈棧,雖然只是簡(jiǎn)單的實(shí)現(xiàn)了入棧出棧遍歷。收獲還是很大的。
在push這里思考了一會(huì),思路是:傳入一個(gè)數(shù)字,push里創(chuàng)建一個(gè)節(jié)點(diǎn)node,把數(shù)據(jù)加入node里,讓head.next指向node(新節(jié)點(diǎn)),然后讓node.next指向top,把node再換成top。
**package stack;public class LinkedListStackDemo {public static void main(String[] args) {SingleLinkedList singleLinkedList = new SingleLinkedList();singleLinkedList.push(1);singleLinkedList.push(2);singleLinkedList.push(3);singleLinkedList.push(4);singleLinkedList.push(5);singleLinkedList.show();singleLinkedList.pop();singleLinkedList.pop();singleLinkedList.pop();} }//鏈棧 class SingleLinkedList {private Node top;private static int size;//初始化棧public SingleLinkedList() {size = 0;}private Node head = new Node();//空public boolean isEmpty() {return head.next == null;}//入棧public void push(int data) {Node temp = new Node();temp.setData(data);head.next = temp;temp.next = top;top = temp;size++;}//出棧public void pop() {if (isEmpty()) {System.out.println("棧空");return;}System.out.println("出棧的是:" + top.getData());head.next = top.next;top = top.next;size--;}//遍歷輸出public void show(){if (isEmpty()){System.out.println("棧空");return;}Node temp = head.next;for (int i = 1; i <= size; i++){System.out.printf("棧的第 %d 個(gè)元素是:%d\n",i,temp.getData());temp = temp.next;}} }//數(shù)據(jù)類(lèi) class Node{private int data;public Node next;public int getData() {return data;}public void setData(int data) {this.data = data;}@Overridepublic String toString() {return "Node{" +"data=" + data +'}';} } ** 結(jié)果:棧的第 1 個(gè)元素是:5 棧的第 2 個(gè)元素是:4 棧的第 3 個(gè)元素是:3 棧的第 4 個(gè)元素是:2 棧的第 5 個(gè)元素是:1 出棧的是:5 出棧的是:4 出棧的是:3總結(jié)
以上是生活随笔為你收集整理的数据结构 - 栈(链表实现栈的入栈出栈)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浦发随借金最高额度是多少钱
- 下一篇: PWN-PRACTICE-CTFSHOW