棧的特性:棧:lifo(後進先出)
棧可由順序陣列實現或者鍊錶實現。
陣列實現
//初始化
object stack;
int size;
int top=-1;
//定義棧大小
stackbuild(int length)
//入棧
public void push(object element)
} //出棧
public object pop()
return result;
}
鍊錶實現//初始化鍊錶
private int listsize;
private node listtop;
class node
public node(object data)
}//入棧
public void linkpush(object element)else
listsize++;
} //出棧
public void linkpop()
}
web瀏覽器中前進後退的應用
思路:定義兩個棧是s1,s1,s1放初始瀏覽頁面的url,s2另乙個棧為空,當執行後退的時候將s1頂端的url進行pop,並將資料push到上
s2中。執行前進的時候將s2頂端的url進行pop,並將資料push到上s1中。
後退功能,sb2.pop 前進功能。
system.out.println("***********************************===>");
system.out.println("初始儲存的頁面:"+arrays.tostring(sb1.stack));
//後退
sb2.push(sb1.pop());
sb2.push(sb1.pop());
system.out.println("***********************************===>");
system.out.println("執行2次後退後的sb1:"+arrays.tostring(sb1.stack));
system.out.println("執行2次後退後的sb2:"+arrays.tostring(sb2.stack));
//前進
sb1.push(sb2.pop());
system.out.println("***********************************===>");
system.out.println("執行1次前進後的sb1:"+arrays.tostring(sb1.stack));
system.out.println("執行1次前進後的sb2:"+arrays.tostring(sb2.stack));
sb1.push(sb2.pop());
system.out.println("***********************************===>");
system.out.println("執行1次前進後的sb1sb1:"+arrays.tostring(sb1.stack));
system.out.println("執行1次前進後的sb1sb2:"+arrays.tostring(sb2.stack));
consle:
***********************************===>
初始儲存的頁面:[baidu, baidutieba, baiduwangpan, baiduyun, baidudianying, null, null, null, null, null]
***********************************===>
執行2次後退後的sb1:[baidu, baidutieba, baiduwangpan, null, null, null, null, null, null, null]
執行2次後退後的sb2:[baidudianying, baiduyun, null, null, null, null, null, null, null, null]
***********************************===>
執行1次前進後的sb1:[baidu, baidutieba, baiduwangpan, baiduyun, null, null, null, null, null, null]
執行1次前進後的sb2:[baidudianying, null, null, null, null, null, null, null, null, null]
***********************************===>
執行1次前進後的sb1sb1:[baidu, baidutieba, baiduwangpan, baiduyun, baidudianying, null, null, null, null, null]
執行1次前進後的sb1sb2:[null, null, null, null, null, null, null, null, null, null]
資料結構 棧 棧
可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...
資料結構 棧
例子 棧是一種被限制在只能在表的一端進行插入和刪除運算的線性表。區域性變數是用棧來儲存的 可以進行插入和刪除的一端稱為 棧頂 top 另一端稱為 棧底 bottom 當表中沒有元素時 表長為0的棧 稱為 空棧。棧的修改是按 後進先出的原則進行,因此棧被稱為後進先出 last in first out...
資料結構 棧
1.棧stack 是限定僅在表尾進行刪除和插入操作的線性表。允許插入刪除的一端叫做棧頂top,另外一端叫做棧底bottom。棧又稱為後進先出 lifo 的線性表。即表尾是指棧頂。2.順序棧 定義 top指向可存入元素的位置。typedef struct stacktypestacktype 插入 進...