Java資料結構之陣列棧的實現

2021-09-10 02:42:06 字數 3086 閱讀 6411

棧是一種後進先出的資料結構

last in first out (lifo)

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

stack

棧的實現
public

class

arraystack

implements

stack

public

arraystack()

@override

public

void

push

(e e)

@override

public e pop()

@override

public e peek()

@override

public

intgetsize()

@override

public

boolean

isempty()

public

intgetcapacity()

@override

public string tostring()

} res.

("] top");

return res.

tostring()

;}}

java資料結構之陣列棧

根據陣列線性表改編而來的陣列棧 關於線性表如何實現的可以參照前面線性表的實現 public class stack public void push t data public t pop public boolean isempty public int getsize public t gete...

資料結構 Java之棧的實現

1 棧 stack 是限制僅在表的一端進行插入和刪除運算的線性表。1 通常稱插入 刪除的這一端為棧頂 top 另一端稱為棧底 bottom 2 當表中沒有元素時稱為空棧。3 棧為後進先出 last in first out 的線性表,簡稱為 lifo 表。2 棧的修改是按後進先出的原則進行。每次刪除...

資料結構之陣列實現棧結構

include include int top int s 返回棧頂位置 int stack empty int s 判斷棧是否為空 int stack full int s 判斷棧是否已滿 void push int s,int x int pop int s return x int main ...