您好,登錄后才能下訂單哦!
本文實例講述了Java數據結構之棧的基本定義與實現方法。分享給大家供大家參考,具體如下:
一、概述:
1、基本概念:
棧是一種數據結構,是只能在某一端插入和刪除的特殊線性表。它按照后進先出的原則存儲數據,先進入的數據被壓入棧底,最后的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最后一個數據被第一個讀出來)。
棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂 浮動;棧中元素個數為零時稱為空棧。插入一般稱為進棧(PUSH),刪除則稱為退棧(POP)。 棧也稱為先進后出表。
棧可以用來在函數調用的時候存儲斷點,做遞歸時要用到棧!
2、示例圖:
二、代碼實現:
package com.java.stack; /** * @描述 棧示例 * @項目名稱 Java_DataStruct * @包名 com.java.stack * @類名 MyStack * @author chenlin * @version 1.0 */ public class CharStack { private int maxSize;// 站的大小 private char[] arr; private int top;// 指向棧頂元素 public CharStack(int size) { this.maxSize = size; this.arr = new char[maxSize]; this.top = -1; } /** * 壓入數據 * * @param value */ public void push(char value) { arr[++top] = value; } /** * 彈出數據 * * @param value */ public char pop() { return arr[top--]; } /** * 訪問數據 * * @return */ public long peek() { return arr[top]; } /** * 判斷是否為空 * * @return */ public boolean isEmpty() { return (top == -1); } /** * 是否滿了 * * @return */ public boolean isFull() { return (top == maxSize - 1); } /** * 把字符串反序 * * @param text * @return */ public String reverse(String text) { for (int i = 0; i < text.length(); i++) { push(text.charAt(i)); } String result = ""; while (!isEmpty()) { result += (char)pop(); } return result; } public static void main(String[] args) { CharStack stack = new CharStack(30); while (!stack.isFull()) { stack.push('l'); stack.push('a'); stack.push('k'); stack.push('m'); stack.push('n'); stack.push('e'); stack.push('b'); stack.push('f'); stack.push('d'); stack.push('e'); } System.out.println("億速云測試結果:"); System.out.println("----------------------------彈出----------------------------"); while (!stack.isEmpty()) { System.out.println(stack.pop()); } System.out.println("----------------------------反序----------------------------"); System.out.println(stack.reverse("abcdefg")); } }
運行結果:
更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。