資料結構複習之 棧

2021-08-26 18:29:47 字數 750 閱讀 4229

棧:先進後出的線性表;

棧也可以通過順序儲存和鏈式儲存的方式實現;

陣列的尾端作為棧頂;

**實現:

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...