一、棧
棧的定義
棧(stack)是限制僅在表的一端進行插入和刪除運算的線性表。
(1)通常稱插入、刪除的這一端為棧頂 (top),另一端稱為棧底 (bottom)。
(2)當表中沒有元素時稱為空棧。
(3)棧為後進先出(last in first out)的線性表,簡稱為 lifo 表。
棧的修改是按後進先出的原則進行。每次刪除(退棧)的總是當前棧中"
最新"的元素,即最後插入(進棧)的元素,而最先插入的是被放在棧的底部,
要到最後才能刪除。
2、棧的基本運算
(1) 判斷棧是否為空
boolean isempty();
(2)清空棧
void clear();
(3)棧的長度
int length();
(4)資料入棧
boolean push(t data);
(5)資料出棧 ,棧中刪除
t pop();
(6)資料出棧 ,棧中不刪除
t peek();
二、**編寫
1、介面類
package com.lin.stack;
/** * 功能概要:棧的介面類
* * @author linbingwen
* @since 2023年8月29日
*/public inte***ce mystack
2、陣列實現棧
package com.lin.stack;
/** * 功能概要:陣列實現棧
* * @author linbingwen
* @since 2023年8月29日
*/public class myarraystackimplements mystack
@override
public void clear()
} @override
public int length()
@override
public boolean push(t data)
objs= temp;
} objs[size++]=data;
return true;
} @override
@suppresswarnings("unchecked")
public t pop()
@override
@suppresswarnings("unchecked")
public t peek()
}
3、鍊錶實現棧
package com.lin.stack;
/** * 功能概要:
* * @author linbingwen
* @since 2023年8月29日
*/public class myliststackimplements mystack
@override
public boolean isempty()
@override
public void clear()
@override
public int length()
@override
public boolean push(t data) else
size++;
return true;
} @override
public t pop()
t data = top.data;
top = top.pre;
size--;
return data;
} @override
public t peek()
t data = top.data;
return data;
}}
4、測試
package com.lin.stack;
/** * 功能概要:
* * @author linbingwen
* @since 2023年8月29日
*/public class stacktest
system.out.println("陣列實現的棧輸出如下 ");
for(int j =0;j<30;j++)
system.out.println();
system.out.println("鍊錶實現的棧輸出如下 ");
for(int k =0;k<30;k++)}}
輸出結果如下:
或者 看這裡:
陣列實現的棧輸出如下
29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
鍊錶實現的棧輸出如下
29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
兩種棧的實現 順序棧和鍊錶棧
棧 一 定義 棧是限定盡在一端插入或刪除操作的線性表。後進先出 lifo 二 習慣上稱棧的可訪問元素為站棧頂 top 元素,元素插入棧稱為入棧 push 刪除元素稱為出棧 pop 三 棧的adt template class stack 建構函式 virtual stack 析構函式 virtual...
兩種實現棧的方式 利用鍊錶和陣列
棧是一種常用的資料結構,其基本方式為先進後出 棧的實現方式一般為兩種 鍊錶和陣列,先來看一下用鍊錶實現的方式 如下 利用鍊錶實現棧 author victor gong param 棧中元素的資料型別 public class linkedstack public linkedstack retur...
資料結構 六 棧 陣列和鍊錶兩種模擬方式
棧的英文是stack。棧是乙個先入後出 first in last out 的有序列表 思路分析圖 實現 class stack1 判斷棧滿 public boolean isfull 判斷棧空 public boolean isempty 入棧 public void push int value...