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

Java常見(jiàn)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

 更新時(shí)間:2021年07月03日 11:59:07   作者:我給哥哥來(lái)喂奶  
這篇文章主要介紹了Java常見(jiàn)數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋?zhuān)M麑?duì)廣大的程序愛(ài)好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望可以幫助到你

棧:

stack,又稱(chēng)堆棧,他是運(yùn)算受限的線(xiàn)性表,其限制是僅允許在表的一端進(jìn)行插入和刪除操作,不允許在其他任何位置進(jìn)行添加、查找、刪除等操作。

簡(jiǎn)單的來(lái)說(shuō),采用該結(jié)構(gòu)的集合,對(duì)元素的存取有如下幾個(gè)特點(diǎn)

1、先進(jìn)后出。

2、棧的入口、出口都是棧的頂端位置。

壓棧:就是存元素,把元素存儲(chǔ)到棧的頂端位置,棧中已有元素一次向棧底方向移動(dòng)一個(gè)位置。

彈棧:就是取元素,把棧頂端的元素取出,棧中已有元素依次向棧頂方向移動(dòng)一個(gè)位置。

隊(duì)列:

queue,簡(jiǎn)稱(chēng)隊(duì),它同堆棧一樣,也是運(yùn)算受限的線(xiàn)性表,其限制是只允許在表的一端進(jìn)行插入,而在表的另一端進(jìn)行刪除。

簡(jiǎn)單來(lái)說(shuō),采用該結(jié)構(gòu)的集合,對(duì)元素的存取有如下的特點(diǎn):

1、先進(jìn)先出

2、隊(duì)列的入口、出口各占一側(cè),例如左側(cè)為入口,右側(cè)為出口

數(shù)組:

Array,是一個(gè)有序的元素序列,數(shù)組是在內(nèi)存中開(kāi)辟出一端連續(xù)的空間,并在此空間存放元素,可以通過(guò)索引快速找到對(duì)應(yīng)的數(shù)據(jù)。

采用此方式存儲(chǔ)數(shù)據(jù)有如下幾個(gè)特點(diǎn):

1、查找元素快,通過(guò)索引可以快速訪(fǎng)問(wèn)指定位置的元素。

2、增刪元素慢,在指定索引位置增加元素,需要?jiǎng)?chuàng)建一個(gè)新的數(shù)組,將指定新元素存儲(chǔ)在指定的索引位置,然后再把原數(shù)組元素根據(jù)索引,復(fù)制到新數(shù)組對(duì)應(yīng)的索引位置

刪除元素,需要?jiǎng)?chuàng)建一個(gè)新數(shù)組,把原數(shù)組元素根據(jù)索引,復(fù)制到新數(shù)組對(duì)應(yīng)索引的位置,原數(shù)組中指定索引位置元素不復(fù)制到新數(shù)組中。

鏈表:

Linked List,由一系列結(jié)點(diǎn)node組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩部分:一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。鏈表分為單向鏈表和雙向鏈表,雙向鏈表是指有上一個(gè)結(jié)點(diǎn)的引用和下一個(gè)結(jié)點(diǎn)的指針,單向鏈表是只有下一個(gè)結(jié)點(diǎn)的指針。

簡(jiǎn)單的說(shuō),采用該數(shù)據(jù)結(jié)構(gòu)的集合,對(duì)數(shù)據(jù)的存儲(chǔ)有如下幾個(gè)特點(diǎn):

  • 多個(gè)結(jié)點(diǎn)之間,通過(guò)地址進(jìn)行連接。
  • 查詢(xún)慢,如果想查找某個(gè)元素,需要通過(guò)連接的結(jié)點(diǎn)依次向后查找。
  • 增刪快,只需要修改連接下一個(gè)元素的地址即可。

紅黑樹(shù):

二叉樹(shù):是每個(gè)結(jié)點(diǎn)不超過(guò)2的有序樹(shù)

簡(jiǎn)單理解,二叉樹(shù)是每個(gè)結(jié)點(diǎn)最多有兩個(gè)子樹(shù)的樹(shù)結(jié)構(gòu)。頂上的叫根節(jié)點(diǎn),兩邊被稱(chēng)作為左子樹(shù)和右子樹(shù)。

紅黑樹(shù)本身就是一顆二叉查找數(shù),將節(jié)點(diǎn)插入后,該數(shù)仍然是一顆二叉查找數(shù),也就意味之?dāng)?shù)的鍵值仍然是有序的。

紅黑樹(shù)的約束:

  • 節(jié)點(diǎn)可以是紅色的或者黑色的
  • 根節(jié)點(diǎn)是黑色的
  • 葉子節(jié)點(diǎn)是黑色的
  • 每個(gè)紅色節(jié)點(diǎn)的子節(jié)點(diǎn)都是黑色的
  • 任何一個(gè)節(jié)點(diǎn)到其每一個(gè)葉子節(jié)點(diǎn)的所有路徑上黑色節(jié)點(diǎn)數(shù)相同

紅黑樹(shù)的特點(diǎn):

速度特別快,趨近平衡樹(shù),查找葉子元素最少和最多次數(shù)不多于兩倍。

總結(jié)

本篇文章就到這里了,希望可以幫到你,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java數(shù)據(jù)結(jié)構(gòu)(線(xiàn)性表)詳解

    Java數(shù)據(jù)結(jié)構(gòu)(線(xiàn)性表)詳解

    本文主要介紹了Java數(shù)據(jù)結(jié)構(gòu)(線(xiàn)性表)的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • java 字符串的拼接的實(shí)現(xiàn)實(shí)例

    java 字符串的拼接的實(shí)現(xiàn)實(shí)例

    這篇文章主要介紹了java 字符串的拼接的實(shí)現(xiàn)實(shí)例的相關(guān)資料,希望通過(guò)本文大家能掌握字符拼接的實(shí)現(xiàn),需要的朋友可以參考下
    2017-09-09
  • JVM(Java虛擬機(jī))簡(jiǎn)介(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    JVM(Java虛擬機(jī))簡(jiǎn)介(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    Java虛擬機(jī)(Jvm)是可運(yùn)行Java代碼的假想計(jì)算機(jī)。Java虛擬機(jī)包括一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲(chǔ)方法域。對(duì)java jvm 虛擬機(jī)感興趣的朋友通過(guò)本文一起學(xué)習(xí)吧
    2017-04-04
  • List集合按某個(gè)屬性或者字段進(jìn)行分組的操作

    List集合按某個(gè)屬性或者字段進(jìn)行分組的操作

    這篇文章主要介紹了List集合按某個(gè)屬性或者字段進(jìn)行分組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 如何修改nacos權(quán)重報(bào)錯(cuò)問(wèn)題

    如何修改nacos權(quán)重報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了如何修改nacos權(quán)重報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 詳解Java如何在Array和List之間進(jìn)行轉(zhuǎn)換

    詳解Java如何在Array和List之間進(jìn)行轉(zhuǎn)換

    這篇文章主要為大家介紹了詳解Java如何在Array和List之間進(jìn)行轉(zhuǎn)換的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Feign遠(yuǎn)程調(diào)用丟失請(qǐng)求頭問(wèn)題

    Feign遠(yuǎn)程調(diào)用丟失請(qǐng)求頭問(wèn)題

    本文介紹了在服務(wù)端項(xiàng)目中如何解決資源訪(fǎng)問(wèn)限制問(wèn)題,首先介紹了問(wèn)題的產(chǎn)生,然后詳細(xì)解析了源碼,最后提出了解決方案,解決方案包括同步和異步兩種,同步時(shí)直接向Spring容器注入RequestInterceptor攔截器
    2024-09-09
  • java(jdk)環(huán)境變量配置(XP、win7、win8)圖文教程詳解

    java(jdk)環(huán)境變量配置(XP、win7、win8)圖文教程詳解

    對(duì)于初學(xué)java的同學(xué)來(lái)說(shuō),第一件事不是寫(xiě)hello world,而是搭建好java開(kāi)發(fā)環(huán)境,下載jdk,安裝,配置環(huán)境變量。這些操作在xp、win7、win8不同的操作系統(tǒng)里面配置不太一樣,下面通過(guò)本文給大家介紹如何在上面不同操作系統(tǒng)下配置
    2017-03-03
  • hadoop client與datanode的通信協(xié)議分析

    hadoop client與datanode的通信協(xié)議分析

    本文主要分析了hadoop客戶(hù)端read和write block的流程. 以及client和datanode通信的協(xié)議, 數(shù)據(jù)流格式等
    2012-11-11
  • Spring?Boot?使用?SSE?方式向前端推送數(shù)據(jù)詳解

    Spring?Boot?使用?SSE?方式向前端推送數(shù)據(jù)詳解

    這篇文章主要介紹了Spring?Boot?使用SSE方式向前端推送數(shù)據(jù)詳解,SSE簡(jiǎn)單的來(lái)說(shuō)就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說(shuō)前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的
    2022-08-08

最新評(píng)論