欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java數(shù)據(jù)結(jié)構(gòu)之棧的基本定義與實(shí)現(xiàn)方法示例

 更新時(shí)間:2017年10月24日 09:47:44   作者:CharlinGod  
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之棧的基本定義與實(shí)現(xiàn)方法,簡(jiǎn)單描述了數(shù)據(jù)結(jié)構(gòu)中棧的功能、原理,并結(jié)合java實(shí)例形式分析了棧的基本定義與使用方法,需要的朋友可以參考下

本文實(shí)例講述了Java數(shù)據(jù)結(jié)構(gòu)之棧的基本定義與實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

一、概述:

1、基本概念:

棧是一種數(shù)據(jù)結(jié)構(gòu),是只能在某一端插入和刪除的特殊線性表。它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)(最后一個(gè)數(shù)據(jù)被第一個(gè)讀出來(lái))。

棧是允許在同一端進(jìn)行插入和刪除操作的特殊線性表。允許進(jìn)行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂 浮動(dòng);棧中元素個(gè)數(shù)為零時(shí)稱為空棧。插入一般稱為進(jìn)棧(PUSH),刪除則稱為退棧(POP)。 棧也稱為先進(jìn)后出表。

??梢杂脕?lái)在函數(shù)調(diào)用的時(shí)候存儲(chǔ)斷點(diǎn),做遞歸時(shí)要用到棧!

2、示例圖:

二、代碼實(shí)現(xiàn):

package com.java.stack;
/**
 * @描述 棧示例
 * @項(xiàng)目名稱 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;
 }
 /**
  * 壓入數(shù)據(jù)
  *
  * @param value
  */
 public void push(char value) {
   arr[++top] = value;
 }
 /**
  * 彈出數(shù)據(jù)
  *
  * @param value
  */
 public char pop() {
  return arr[top--];
 }
 /**
  * 訪問(wèn)數(shù)據(jù)
  *
  * @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("腳本之家測(cè)試結(jié)果:");
  System.out.println("----------------------------彈出----------------------------");
  while (!stack.isEmpty()) {
   System.out.println(stack.pop());
  }
  System.out.println("----------------------------反序----------------------------");
  System.out.println(stack.reverse("abcdefg"));
 }
}

運(yùn)行結(jié)果:

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 一個(gè)簡(jiǎn)單的Python名片管理系統(tǒng)

    一個(gè)簡(jiǎn)單的Python名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單的Python名片管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解

    nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解

    這篇文章主要為大家介紹了nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • java ArrayBlockingQueue阻塞隊(duì)列的實(shí)現(xiàn)示例

    java ArrayBlockingQueue阻塞隊(duì)列的實(shí)現(xiàn)示例

    ArrayBlockingQueue是一個(gè)基于數(shù)組實(shí)現(xiàn)的阻塞隊(duì)列,本文就來(lái)介紹一下java ArrayBlockingQueue阻塞隊(duì)列的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 淺析java中stringBuilder的用法

    淺析java中stringBuilder的用法

    下面小編就為大家?guī)?lái)一篇淺析java中stringBuilder的用法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • mybatis-plus多表關(guān)聯(lián)查詢功能的實(shí)現(xiàn)

    mybatis-plus多表關(guān)聯(lián)查詢功能的實(shí)現(xiàn)

    本文給大家介紹mybatis-plus多表關(guān)聯(lián)查詢功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11
  • Java基礎(chǔ)詳解之內(nèi)存泄漏

    Java基礎(chǔ)詳解之內(nèi)存泄漏

    這篇文章主要介紹了Java基礎(chǔ)詳解之內(nèi)存泄漏,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • PostMan傳@RequestParam修飾的數(shù)組方式

    PostMan傳@RequestParam修飾的數(shù)組方式

    這篇文章主要介紹了PostMan傳@RequestParam修飾的數(shù)組方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例

    java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例

    下面小編就為大家?guī)?lái)一篇java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 如何在mybatis中向BLOB字段批量插入數(shù)據(jù)

    如何在mybatis中向BLOB字段批量插入數(shù)據(jù)

    這篇文章主要介紹了如何在mybatis中向BLOB字段批量插入數(shù)據(jù)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-10-10
  • Java中ReentrantLock和ReentrantReadWriteLock的原理

    Java中ReentrantLock和ReentrantReadWriteLock的原理

    這篇文章主要介紹了Java中ReentrantLock和ReentrantReadWriteLock的原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09

最新評(píng)論