資料結構 棧

2021-09-11 20:28:55 字數 2823 閱讀 3613

棧的特性:棧: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 插入 進...