Java資料結構之陣列佇列和迴圈佇列的實現

2021-09-10 02:42:06 字數 4222 閱讀 8608

// 動態陣列的封裝

public

class

array

data = newdata;

}/**

* 建構函式

* @param capacity

*/public

array

(int capacity)

/** * 無參建構函式,初始化陣列容量為10

*/public

array()

/** * 獲取陣列大小

* @return

*/public

intgetsize()

/** * 獲取陣列容量

* @return

*/public

intgetcapacity()

/** * 判空

* @return

*/public

boolean

isempty()

/** * 末尾新增元素

* @param e

*/public

void

addlast

(e e)

/** * 在頭插入元素

* @param e

*/public

void

addfirst

(e e)

/** * 在某一位置新增元素

* @param index

* @param e

*/public

void

add(

int index, e e)

else

if(index <

0|| index > size)

else

data[index]

= e;

size++;}

}/**

* 獲取index索引的元素

* @param index

* @return

*/public e get

(int index)

return data[index];}

public e getlast()

public e getfirst()

/** * 設定某一位置的元素

* @param index

* @param e

*/public

void

set(

int index, e e)

data[index]

= e;

}/**

* 某乙個元素是否包含

* @param e

* @return

*/public

boolean

contains

(e e)

}return

false;}

/** * 返回某一元素的索引下標

* @param e

* @return

*/public

intfind

(e e)

}return-1

;}/** * 刪除某一元素

* @param index

* @return

*/public e remove

(int index)

e ret = data[index]

;for

(int i = index +

1; i < size; i++

) size--

;// 去掉閒散物件

data[size]

= null;

// 減少陣列容量

if(size == data.length /

4&& data.length /2!=

0)return ret;

}/**

* 刪除第乙個

* @return

*/public e removefirst()

/** * 刪除最後乙個

* @return

*/public e removelast()

/** * 查詢某一元素並刪除

* @param e

* @return

*/public

void

removeelement

(e e)

}/**

* 遍歷陣列

* @return

*/@override

public string tostring()

} res.

("]");

return res.

tostring()

;}}

// 基本介面定義

public

inte***ce

queue

// 陣列佇列的實現

public

class

arrayqueue

implements

queue

public

arrayqueue()

public

intgetcapacity()

@override

public

void

enqueue

(e e)

@override

public e dequeue()

@override

public e getfront()

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public string tostring()

} res.

("] tail");

return res.

tostring()

;}}// 測試

public

class

main}}

}

public

class

loopqueue

implements

queue

data = newdata;

front =0;

tail = size;

}public

loopqueue

(int capacity)

public

loopqueue()

public

intgetcapacity()

@override

public

void

enqueue

(e e)

data[tail]

= e;

tail =

(tail +1)

% data.length;

size++;}

@override

public e dequeue()

e ret = data[front]

; data[front]

= null;

front =

(front +1)

% data.length;

size--;if

(size ==

getcapacity()

/4&&getcapacity()

/2!=0

)return ret;

}@override

public e getfront()

return data[front];}

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public string tostring()

} res.

("] tail");

return res.

tostring()

;}}// 測試

public

class

main}}

}

資料結構之陣列佇列

佇列的特性 1.佇列是一種線性資料結構,與陣列相比,佇列的方法是陣列的子集 2.向佇列中新增元素只能在隊尾進行,在隊首刪除元素 3.佇列是一種先進先出的資料結構 佇列的方法 1.void enqueue e e 向佇列中新增元素 2.e dequeue 從佇列中刪除元素 3.int getsize ...

資料結構 陣列佇列

佇列的實現還是依託於一開始所寫的陣列 資料結構 二次封裝自己的陣列 一 完成陣列基本功能 資料結構 二次封裝自己的陣列 二 公升級為泛型陣列 資料結構 二次封裝自己的陣列 三 公升級為動態陣列 下面是佇列的實現 class arrayqueue queue public arrayqueue pub...

資料結構 陣列佇列 迴圈佇列

佇列 是 先進先出 的資料結構,從隊尾入隊,從隊頭出隊。佇列中使用的array,參考 資料結構 手寫動態陣列 public inte ce queue public class arrayqueue implements queue public arrayqueue int capacity ov...