大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基礎學習:java數據結構中的棧

Java基礎學習:java數據結構中的棧

更新時間:2020-04-16 14:00:02 來源:動力節點 瀏覽2328次

    數據結構中的棧不要與Java中的棧混淆,他們倆不是一回事,數據結構中的棧是一種受限制的線性表,棧具有先進后出、后進先出的特點,因為棧只允許訪問最后一個數據項,即最后插入的數據項。也許你會有疑問,棧既然有這么多限制,為什么不用數組或者鏈表而使用棧?在開發中,我們有特定的場景,根據特定的場景去選用數據結構,棧的適用場景非常多,比如瀏覽器的前進與后退、字符串括號的合法性等,我們使用棧來實現就比較好,因為棧相對數組、鏈表來說對外提供的接口要少很多,接口少了,出錯的概率就減少了,對風險的可控性就提高了。

    實現一個棧

    從棧的定義中可以看出,棧主要有兩個操作,一個是新增一條數據,我們叫做入棧,另一個是獲取一條數據,稱為出棧,下面兩張圖是入棧出棧示意圖。

Java基礎學習:java數據結構中的棧

    棧的實現有兩種方式,一種是基于數組實現的,我們叫作順序棧,另一種是基于鏈表實現的,我們叫作鏈式棧。下面是兩種棧的實現代碼

    基于數組的順序棧

Java基礎學習:java數據結構中的棧

    基于鏈表的鏈式棧

Java基礎學習:java數據結構中的棧

    棧的實現比較簡單,因為棧涉及的操作不多,主要就入棧和出棧兩個操作。

    棧的應用

    檢測字符串括號的合法性

    我們有時候需要檢測字符串括號的合法性,即一個左括號需要匹配一個右括號,這個我們可以使用棧來實現。我們可以從一個合法的括號來理解為什么使用棧?如果括號使用合法,最后一個左括號跟第一個右括號是匹配的,倒數第二個左括號和第二個右括號匹配的,以此類推,這符合我們棧的特性先進后出。

    假設我們有三種括號:圓括號()、方括號[]和花括號{},我們使用棧來檢測括號的合法性。我們將左括號全部壓棧,當出現右括號時,我們就進行匹配,這時候有如下三種情況:

    棧為空,說明沒有左括號,括號使用不合法

    棧中取出來的左括號跟右括號不匹配,括號使用不合法

    棧中取出的左括號跟右括號匹配,括號使用暫時合法

    當整個字符串都掃描完成后,檢測棧中是否還有值,如果棧為空,則說明括號使用合法,反正,則括號使用不合法。

    實現代碼

Java基礎學習:java數據結構中的棧

    瀏覽器前進、后退功能

    我們使用瀏覽器都知道,瀏覽器可以前進、后退功能,瀏覽器的前進后退也符合棧的特點,我們最先訪問的網頁肯定要最后才能倒回去。我們一起來看看棧怎么實現這個功能?

    我們需要定義兩個棧,我們將首次訪問的頁面壓棧到第一個棧中,當點擊后退時,從第一個棧中取出數據放入到第二個棧,當點擊前進按鈕時,從第二個棧取出數據放入第一個棧。當第一個棧沒有數據時,說明沒有頁面可以點擊后退了,當第二個棧沒有數據時,說明沒有頁面可以點擊前進了。這樣我們就通過棧實現了瀏覽器前進、后退功能。

 以上就是動力節點java培訓機構的小編針對“Java基礎學習:java數據結構中的棧”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久精品女人天堂 | 亚洲国产欧美在线观看 | 五月婷婷激情在线 | www四虎影视| 久久99精品久久久久久青青日本 | 美女视频黄视大全视频免费网址 | 色狠狠xx| 伊人久久亚洲综合 | 四虎精品免费永久在线 | 欧美特级爽毛片 | 在线视频日韩 | 午夜影视在线 | 理论片毛片 | 久久精品国产精品亚洲毛片 | 欧美日韩视频一区三区二区 | 日本免费的一级绿象 | 久久国产精品久久久久久 | 日韩 综合| 亚洲一区二区三区精品国产 | 国产免费青青青免费视频观看 | 久久91这里精品国产2020 | 精品久久中文网址 | 欧美日韩国产亚洲一区二区三区 | 中文字幕一区二区三区 精品 | 日本综合色 | 久久免费国产视频 | 99精品福利 | 天天色天天射天天操 | 天天看片日日夜夜 | 四虎影院在线 | 91官网 | 国产成人啪精品视频免费网 | 日日噜噜夜夜狠狠视频无 | 欧日韩美香蕉在线观看 | 亚洲h片| 99在线观看精品视频 | 337p欧美超大胆日本人术艺术 | 女人18一级特级毛片免费看 | 免费国产成人高清在线观看麻豆 | 91久久综合九色综合欧美98 | 国产精品爱久久久久久久9999 |