数据结构 - 栈(链表实现栈的入栈出栈)
生活随笔
收集整理的這篇文章主要介紹了
数据结构 - 栈(链表实现栈的入栈出栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學完鏈表和棧,數組模擬棧學完后,自己根據鏈表寫了個鏈棧,雖然只是簡單的實現了入棧出棧遍歷。收獲還是很大的。
在push這里思考了一會,思路是:傳入一個數字,push里創建一個節點node,把數據加入node里,讓head.next指向node(新節點),然后讓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("???#34;);return;}Node temp = head.next;for (int i = 1; i <= size; i++){System.out.printf("棧的第 %d 個元素是:%d\n",i,temp.getData());temp = temp.next;}} }//數據類 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 +'}';} } ** 結果:棧的第 1 個元素是:5 棧的第 2 個元素是:4 棧的第 3 個元素是:3 棧的第 4 個元素是:2 棧的第 5 個元素是:1 出棧的是:5 出棧的是:4 出棧的是:3總結
以上是生活随笔為你收集整理的数据结构 - 栈(链表实现栈的入栈出栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发随借金最高额度是多少钱
- 下一篇: 浦发银行万用随借金开通方法和开通流程