背包:Bag是一種無序的數(shù)據(jù)結(jié)構(gòu),不支持刪除操作稚瘾,就像是把帶有數(shù)字的球收集到袋子中牡昆,取的時(shí)候遍歷收集到的元素,是無序的。
棧:LIFO丢烘,是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)柱宦,就像是我們往一個(gè)玻璃杯里面放小球,最后放的最先取出來播瞳。
隊(duì)列:FIFO掸刊,先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),如同一個(gè)管子赢乓,往一端放小球忧侧,另外一端取,先放入的先取出來牌芋。
用數(shù)組實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu):順序儲(chǔ)存
一.實(shí)現(xiàn)棧的思路蚓炬。
1.用a[]保存元素,N保存元素?cái)?shù)量躺屁,當(dāng)push就N++肯夏,當(dāng)pull就N--。
2.動(dòng)態(tài)調(diào)整數(shù)組大小犀暑,當(dāng)N==a[].size就復(fù)制到新數(shù)組中驯击,原來的數(shù)據(jù)置null。反之小于1/4就減半
3.加入迭代耐亏,內(nèi)部類余耽,implements Iterator<Item> ,i=N苹熏,hasNext return i>0碟贾,
next 就return a[--i]。
用鏈表實(shí)現(xiàn):鏈?zhǔn)絻?chǔ)存
鏈表結(jié)構(gòu)簡(jiǎn)單實(shí)現(xiàn):
對(duì)象有兩個(gè)變量Item和Next轨域,Item是泛型保存了變量的類型袱耽。
而next保存了下一個(gè)對(duì)象的引用。
如果要實(shí)現(xiàn)隊(duì)列需要有兩個(gè)節(jié)點(diǎn)對(duì)象的引用干发,first朱巨,last。