棧:先進後出的線性表;
棧也可以通過順序儲存和鏈式儲存的方式實現;
陣列的尾端作為棧頂;
**實現:
package org.xiazdong.list; public class myarraystack public void push(t e) top++; if(top>=t.length) t[top]=e; } public t top() public t pop() t tmp = t[top]; top--; return tmp; } public int getsize() private void larger(int len) public t pop() t elem = top.elem; top = top.next; return elem; } public t top() public void push(t e) class node public node(t elem,node next) } }
順序儲存
鏈式儲存
優點訪問快、增加刪除都為o(1)
增加刪除都為o(1),對於空間沒有限制
缺點浪費空間,容易溢位
指標需要空間
我們這裡以斐波那契數為例;fib(n) = fib(n-1)+fib(n-2),fib(2) = fib(1) = 1;
遞迴和棧是密不可分的,遞迴的實現就是通過棧來完成的;
我們在做計算器應用時肯定會用到字尾表示式,中綴表示式轉換到字尾表示式,字尾表示式求出值都是通過棧實現的;
字尾表示式的講解在:
資料結構之 棧 複習
棧 先進後出的線性表 棧也可以通過順序儲存和鏈式儲存的方式實現 一 順序儲存實現 陣列的尾端作為棧頂 實現 package org.xiazdong.list public class myarraystack public void push t e top if top t.length t t...
資料結構複習 棧
棧,也是一種表結構,特點是先進後出。實現方式也有兩種 陣列和鍊錶。本文主要是複習,老鳥跳過!具體主要包括以下操作 stack createstack void int isempty stack s int isfull stack s 鏈式stack可以不斷申請space void makeemp...
複習 資料結構 棧和佇列
鏈佇列 include include define elemtype char define maxsize 100 typedef struct node 定義節點型別 snode typedef struct lqueue void initqueue lqueue qu void enque...