最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)方法,簡單描述了數(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)先出的原則存儲數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)(最后一個數(shù)據(jù)被第一個讀出來)。

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

??梢杂脕碓诤瘮?shù)調(diào)用的時(shí)候存儲斷點(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--];
 }
 /**
  * 訪問數(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("腳本之家測試結(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緩存操作技巧匯總

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

相關(guān)文章

  • SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    RocketMQ 的事務(wù)消息提供類似 X/Open XA 的分布事務(wù)功能,通過事務(wù)消息能達(dá)到分布式事務(wù)的最終一致,這篇文章主要介紹了SpringBoot集成RocketMQ發(fā)送事務(wù)消息,需要的朋友可以參考下
    2022-06-06
  • 基于java時(shí)區(qū)轉(zhuǎn)換夏令時(shí)的問題及解決方法

    基于java時(shí)區(qū)轉(zhuǎn)換夏令時(shí)的問題及解決方法

    下面小編就為大家分享一篇基于java時(shí)區(qū)轉(zhuǎn)換夏令時(shí)的問題及解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 在Java Spring框架中使用的設(shè)計(jì)模式有哪些

    在Java Spring框架中使用的設(shè)計(jì)模式有哪些

    面試中常會被問道Spring框架使用了哪些設(shè)計(jì)模式?關(guān)于這個問題本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Spring Boot自動注入的原理分析

    Spring Boot自動注入的原理分析

    這篇文章主要給大家分析介紹了關(guān)于Spring Boot自動注入的原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Spring Boot自具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java集合List和Map互轉(zhuǎn)的方法總結(jié)

    Java集合List和Map互轉(zhuǎn)的方法總結(jié)

    有時(shí)候我們需要將給定的List轉(zhuǎn)換為Map,或者M(jìn)ap轉(zhuǎn)換為List,本文主要介紹了Java集合List和Map互轉(zhuǎn)的方法總結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 教你如何用Eclipse創(chuàng)建一個Maven項(xiàng)目

    教你如何用Eclipse創(chuàng)建一個Maven項(xiàng)目

    這篇文章主要介紹了教你如何用Eclipse創(chuàng)建一個Maven項(xiàng)目,文中有非常詳細(xì)的代碼示例,對正在入門Java的小伙伴們是非常有幫助的喲,需要的朋友可以參考下
    2021-05-05
  • 使用Maven 搭建 Spring MVC 本地部署Tomcat的詳細(xì)教程

    使用Maven 搭建 Spring MVC 本地部署Tomcat的詳細(xì)教程

    這篇文章主要介紹了使用Maven 搭建 Spring MVC 本地部署Tomcat,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Spring事務(wù)&Spring整合MyBatis的兩種方式

    Spring事務(wù)&Spring整合MyBatis的兩種方式

    這篇文章主要介紹了Spring事務(wù)&Spring整合MyBatis的兩種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Java十大經(jīng)典排序算法的實(shí)現(xiàn)圖解

    Java十大經(jīng)典排序算法的實(shí)現(xiàn)圖解

    Java常見的排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數(shù)排序等。本文詳解介紹Java十大十大經(jīng)典排序算法的實(shí)現(xiàn)以及圖解,需要的可以參考一下
    2022-03-03
  • AsyncHttpClient exception異常源碼流程解析

    AsyncHttpClient exception異常源碼流程解析

    這篇文章主要為大家介紹了AsyncHttpClient的exception源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論

汤原县| 翼城县| 天镇县| 遂川县| 米易县| 扶沟县| 泾阳县| 巴南区| 普宁市| 三台县| 佛山市| 虎林市| 固安县| 奈曼旗| 富源县| 百色市| 汝州市| 峨边| 峨眉山市| 玛曲县| 潼南县| 扎兰屯市| 乌拉特前旗| 屏东市| 阳西县| 新民市| 布拖县| 孝昌县| 巴林左旗| 鹤山市| 尖扎县| 宁陵县| 承德市| 苍溪县| 林芝县| 济南市| 日土县| 平度市| 辉县市| 茂名市| 英吉沙县|