// 動態陣列的封裝
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...