黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

更新時間:2020-04-16 14:00:02 來源:動力節(jié)點 瀏覽2349次

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

    實現(xiàn)一個棧

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

Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

    棧的實現(xiàn)有兩種方式,一種是基于數(shù)組實現(xiàn)的,我們叫作順序棧,另一種是基于鏈表實現(xiàn)的,我們叫作鏈?zhǔn)綏?。下面是兩種棧的實現(xiàn)代碼

    基于數(shù)組的順序棧

Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

    基于鏈表的鏈?zhǔn)綏?/p>

Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

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

    棧的應(yīng)用

    檢測字符串括號的合法性

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

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

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

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

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

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

    實現(xiàn)代碼

Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧

    瀏覽器前進(jìn)、后退功能

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

    我們需要定義兩個棧,我們將首次訪問的頁面壓棧到第一個棧中,當(dāng)點擊后退時,從第一個棧中取出數(shù)據(jù)放入到第二個棧,當(dāng)點擊前進(jìn)按鈕時,從第二個棧取出數(shù)據(jù)放入第一個棧。當(dāng)?shù)谝粋€棧沒有數(shù)據(jù)時,說明沒有頁面可以點擊后退了,當(dāng)?shù)诙€棧沒有數(shù)據(jù)時,說明沒有頁面可以點擊前進(jìn)了。這樣我們就通過棧實現(xiàn)了瀏覽器前進(jìn)、后退功能。

 以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):java數(shù)據(jù)結(jié)構(gòu)中的棧”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 男人的天堂色偷偷亚洲京东 | 久久夜色精品国产亚洲 | 免费观看a级毛片在线播放 免费观看a级完整视频 | 日韩欧美高清 | 一区二区三区中文字幕 | 午夜dj免费高清在线观看影院 | 在线观看国产免费高清不卡 | 91亚洲国产系列精品第56页 | 国产精品一卡二卡三卡 | 涩涩涩涩爱 | 国产在线成人一区二区 | 黄色三级免费看 | 涩涩动漫网站入口 | 精品国产一区二区三区国产馆 | 亚洲日韩视频免费观看 | 亚洲日韩精品欧美一区二区一 | 日韩高清播放器 | 亚洲欧洲国产精品你懂的 | 成人午夜视频免费 | 午夜动漫| 日韩成人激情 | 中国免费黄色片 | 日韩综合在线视频 | 免费成人在线网站 | 成人网在线免费观看 | 欧美高清在线精品一区 | 国产a∨一区二区三区香蕉小说 | 国内成人精品视频 | 福利免费看 | 亚洲va欧美va | aaaaaa毛片免费看 | 97久久精品人人澡人人爽 | 小明看片成人永久在线观看 | 国产精品一在线观看 | 国产午夜一级鲁丝片 | 免费污视频在线 | 国产午夜精品一区二区三区不卡 | 国产乱理伦片在线看 | 久久五月天综合 | 日韩欧美一区二区不卡看片 | 永久免费毛片手机版在线看 |