數(shù)據(jù)結構學習筆記(02線性表)

示例代碼

度娘盤 密碼:r9sc

這里描述的線性表非常的類似java中常用的ArrayList

對于順序表的基本運算操作有

1霜第、初始化線性表

2斟薇、判斷線性表是否為空

3备畦、按序號查找

4计盒、按內容查找

5、插入操作

6藏杖、刪除操作

7将塑、求線性表的長度

8、清空順序表

根據(jù)線性表的基本特征我們先構造一個線性表蝌麸。

public class SeqList<datatype> {//指定數(shù)據(jù)類型為泛型

private int listSize = 100;//默認表長度為100

private Object[] list;//定義數(shù)組

private int length;//存儲線性表的長度屬性


public SeqList(int listSize) {//構造函數(shù)点寥,接收一個參數(shù),指定線性表大小

this.listSize = listSize;

this.list = new Object[listSize];

this.length = 0;

}


public SeqList() {//構造函數(shù)来吩,無參敢辩,使用默認線性表大小

this.list = new Object[listSize];

this.length = 0;

}



public int size() {//大小函數(shù),返回length即可

return this.length;

}



public boolean listEmpty() {//判斷是否為空函數(shù)误褪,如果長度為0便是空的

if (this.length == 0) {

return true;

}

return false;

}


//下列所有方法均對異常數(shù)據(jù)進行了處理,比如下表越界等情況碾褂,我們的算法最好處理兽间。


public datatype get(int index) {//根據(jù)下標獲取內容,我們需要處理無效的下標正塌,比如負數(shù)嘀略,或者大于了長度的下標,這些都是不正確的輸入

try {

if (index >= this.length || index < 0) {

throw new Exception("index:"+index+",size:"+this.length);

} else {

return (datatype) this.list[index];

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}




public void add(datatype value) {//插入操作乓诽,不需要指定位置帜羊,默認插入在末尾,我們需要判斷線性表是否存滿了鸠天,直接在末尾插入就行了讼育,長度加一

try {

if(this.length == this.listSize) {

throw new Exception("list is full , list size:"+this.listSize+";list length:"+this.length);

}else {

this.list[this.length]=value;

this.length=this.length+1;

}

} catch (Exception e) {

e.printStackTrace();

}

}


public void add(int position,datatype value) {//插入操作,插入到指定的位置稠集,需要判斷下標是否有效奶段,表是否滿了等基本操作,我們把插入點后的所有元素都往后移動一格剥纷,然后在插入點放置元素即可痹籍。長度加一

try {

if(this.length == this.listSize) {

throw new Exception("list is full , list size:"+this.listSize+";list length:"+this.length);

}else if(position < 0 || position > length){

throw new Exception("Invalid position");

}else {

for (int i = this.length; i >= position; i--) {

this.list[i] = this.list[i-1];

}

this.list[position-1]=value;

this.length = this.length+1;

}

} catch (Exception e) {

e.printStackTrace();

}

}





public void set(int index,datatype value) {//改變指定位置的元素,只需要把指定位置的元素替換了就行了晦鞋,

try {

if(index < 0 || index > this.length-1) {

throw new Exception("Invalid index");

}else {

this.list[index]=value;

}

} catch (Exception e) {

e.printStackTrace();

}

}



public void del() {//刪除操作蹲缠,無參就是刪除整個表棺克,直接new一個新對象就完成,長度歸零

this.list = new Object[listSize];

this.length=0;

}




public void del(int index) {//刪除操作线定,指定刪除的位置娜谊,指定點后面的所有元素都往前挪一格就行了。然后長度減一

try {

if(index > this.length || index <= 0) {

throw new Exception("Invalid index");

}else {

for (int i = index; i <=? this.length; i++) {

this.list[i] = this.list[i+1];

}

this.length = this.length-1;

}

datatype value = (datatype) this.list[index-1];

} catch (Exception e) {

e.printStackTrace();

}

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末渔肩,一起剝皮案震驚了整個濱河市因俐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌周偎,老刑警劉巖抹剩,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蓉坎,居然都是意外死亡澳眷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門蛉艾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钳踊,“玉大人,你說我怎么就攤上這事勿侯⊥氐桑” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵助琐,是天一觀的道長祭埂。 經常有香客問我,道長兵钮,這世上最難降的妖魔是什么蛆橡? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮掘譬,結果婚禮上泰演,老公的妹妹穿的比我還像新娘。我一直安慰自己葱轩,他們只是感情好睦焕,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著靴拱,像睡著了一般复亏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缭嫡,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天缔御,我揣著相機與錄音,去河邊找鬼妇蛀。 笑死耕突,一個胖子當著我的面吹牛笤成,可吹牛的內容都是我干的。 我是一名探鬼主播眷茁,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼炕泳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了上祈?” 一聲冷哼從身側響起培遵,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎登刺,沒想到半個月后籽腕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡纸俭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年皇耗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揍很。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡郎楼,死狀恐怖,靈堂內的尸體忽然破棺而出窒悔,到底是詐尸還是另有隱情呜袁,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布简珠,位于F島的核電站阶界,受9級特大地震影響,放射性物質發(fā)生泄漏北救。R本人自食惡果不足惜荐操,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一芜抒、第九天 我趴在偏房一處隱蔽的房頂上張望珍策。 院中可真熱鬧,春花似錦宅倒、人聲如沸攘宙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹭劈。三九已至,卻和暖如春线召,著一層夾襖步出監(jiān)牢的瞬間铺韧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工缓淹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哈打,地道東北人塔逃。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像料仗,于是被迫代替她去往敵國和親湾盗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,464評論 0 13
  • 1. Java基礎部分 基礎部分的順序:基本語法立轧,類相關的語法格粪,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 本文是我自己在秋招復習時的讀書筆記冤灾,整理的知識點浸间,也是為了防止忘記,尊重勞動成果兽肤,轉載注明出處哦!如果你也喜歡,那...
    波波波先森閱讀 2,801評論 0 10
  • 文/高放 今天是農歷十月二十八日是鬼,是我的生日。本來沒有記起紫新,以前每年也大多忘卻均蜜。昨天傍晚下班剛回家女兒和女...
    小小苔花閱讀 859評論 2 7
  • 晚上下班回家一組動作:洗手,擦桌子柜子芒率,掃床單囤耳,已成習慣。然而今天關上門偶芍,就歪倒在了床沿充择。 蜷縮著身子,腦袋放空匪蟀,...
    蔥蔥三月閱讀 201評論 0 1