慕課網玩轉資料結構課程之陣列
陣列是java語言中支援的一種語法,平時我們只需要知道怎麼用就行了,而資料結構這門課就是告訴我們資料在陣列中是以怎樣的一種形式進行儲存,它的增、刪、改、查又是如何實現的,這就是知其然也知其所以然,這裡主要講一下個人學習之後的一些理解,也是加深印象的一種手段。
主要說一下增、刪、改、查幾個方法的實現,我們新建一個類,維護兩個成員變數,一個是就是java的陣列,一個是size,size表示陣列中實際存放的元素個數。在實現中,size主要是指向陣列中下一個可以存放元素的位置
add(int index,E e)方法:
有幾種,比如在陣列的第一個位置新增元素,還有在陣列最後的位置新增元素,
這個最後的位置不是指陣列容量中最後的位置,而是說size指向的索引位置,
還有在指定的位置新增元素,我們說說最後一種,在指定位置新增元素。
比方我們現有一個陣列 [0,1,2,3,4,5,6,7,8,9] 這個時候,我想在索引為0的位置新增一個元素100,那具體是怎麼實現呢?我們需要把這個陣列中每個元素的位置都往後挪一個位置,應該先從最後一個元素,也就是9開始,9的索引也是9,那麼就把9挪到索引為10的位置上,依次類推,整個流程走完之後陣列應該是這樣子的 【0,0,1,2,3,4,5,6,7,8,9】,然後再把索引為0的位置的元素給替換成100,結果應該是【100,0,1,2,3,4,5,6,7,8,9】,這個時候我們的新增操作就已經完成了,維護一下size,size進行++
remove(int index)方法:
和add()一樣,也有幾種形式,頭部刪除,尾部刪除,任意位置進行刪除,實現思路其實跟add()是相反的,首先我們要找到要刪除位置索引的後一個位置,比如你要刪除索引為3的元素,那麼你這個時候應該找到索引為4的位置,然後用索引為4的元素往前挪一位,覆蓋原先索引為3的元素,依次類推,直到陣列中最後一個元素也往前挪了一位,這個時候,原先索引為3的元素也就不存在了,我們刪除操作也就完成了,維護一下size,進行size–操作就OK了。
還有一個刪除陣列中存在的所有相同的元素:
removeAllElement(E e);
這個方法在課程中並沒有給出具體的實現的程式碼,而是讓我們自己去思考寫出,我相信買了這門課程的同學應該大部分都自己實現了這個方法,可能每個人實現的方式都不一樣,我經過自己的思考,也是實現了這個方法的,主要思路就是:
先統計出這個元素在陣列中出現的次數,然後根據這個次數迴圈進行刪除,我貼一下程式碼:
public void removeAllElement(int e) {
int count = findAll(e);
for(int i = 0 ; i < count ; i ++) {
removeElement(e);
}
}
public int findAll(int e) {//這個方法進行元素出現次數的統計
int count = 0 ;
for(int i = 0 ; i < size ; i++) {
if(data[i] == e)
count ++ ;
}
return count;
}
//這個方法是根據使用者傳來的元素,進行查詢,如果陣列存在這個元素就進行刪除
public void removeElement(int e) {
int index = find(e);
if(index != -1)
remove(index);
}
哇!!!突然發現老師錄製影片是真的好不容易,而且還有大量的ppt動畫演示效果,還要組織語言,如何更加通俗易懂,我就打了這麼點東西,都感覺花費好長的時間,主要是想著怎麼組織語言,雖然我不是講課,hh,但是萬一有人看呢,我希望別人看的懂啊,以後我自己再來看,我也希望自己能看懂,不過我覺得我還是說的挺亂的,不管了!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2822276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 慕課 玩轉資料結構 從入門到進階 (草稿)資料結構
- 玩轉資料結構之陣列資料結構陣列
- 慕課網的中國式線上“慕課”模式模式
- 慕課網大資料開發工程師課程大資料工程師
- 慕課網_《iOS基礎教程之介面初體驗》學習總結iOS
- WebView學習的總結————慕課網WebView
- 慕課網-LinuxC語言結構體-學習筆記LinuxC語言結構體筆記
- nodejs + cheerio + Promise(bluebird庫實現)抓取慕課網nodejs課程資料NodeJSPromise
- 慕課網招聘golang講師Golang
- 慕課網《探秘Spring AOP》學習總結Spring
- 慕課網10小時大資料入門筆記大資料筆記
- JavaScript(轉載自 計科學院 慕課網)JavaScript
- 慕課平臺
- 資料結構 - 陣列資料結構陣列
- 資料結構-陣列資料結構陣列
- 慕課網go語言體系課搶先體驗Go
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 慕課全套資料,需要的同學自己拿
- 資料結構之「陣列」資料結構陣列
- 資料結構之陣列資料結構陣列
- 資料結構2——陣列資料結構陣列
- Java資料結構-陣列Java資料結構陣列
- 資料結構實驗課五-1資料結構
- Java資料結構---基於陣列的表(轉)Java資料結構陣列
- Mooc下載器:中國大學mooc慕課影片課件課程下載工具,如何在電腦端下載中國大學mooc慕課影片課程課件資料到本地?
- Java版-資料結構-陣列Java資料結構陣列
- JavaScript資料結構01 - 陣列JavaScript資料結構陣列
- JS資料結構(一)——陣列JS資料結構陣列
- 資料結構——樹狀陣列資料結構陣列
- 慕課網獨創行業標杆級課程《Java架構師-十項全能》全網首發行業Java架構
- 慕課網Python入門練習題---Python
- 我的慕課實戰課程上線了
- 資料結構 第一節 第六課資料結構
- thinkphp開發 網易雲課堂-線上IT學習|視訊教程|慕課網PHP
- Java版-資料結構-佇列(陣列佇列)Java資料結構佇列陣列
- js實現資料結構--陣列JS資料結構陣列
- 基礎資料結構之陣列資料結構陣列
- pyspark 解析kafka陣列結構資料SparkKafka陣列