資料結構之 棧 複習

2021-07-06 07:10:09 字數 1056 閱讀 6184

棧:先進後出的線性表;

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

一、順序儲存實現

陣列的尾端作為棧頂;

**實現:

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),對於空間沒有限制

缺點浪費空間,容易溢位

指標需要空間

四、棧的應用

1.遞迴

我們這裡以斐波那契數為例;fib(n) = fib(n-1)+fib(n-2),fib(2) = fib(1) = 1;

遞迴和棧是密不可分的,遞迴的實現就是通過棧來完成的;

2.字尾表示式

我們在做計算器應用時肯定會用到字尾表示式,中綴表示式轉換到字尾表示式,字尾表示式求出值都是通過棧實現的;

資料結構複習之 棧

棧 先進後出的線性表 棧也可以通過順序儲存和鏈式儲存的方式實現 陣列的尾端作為棧頂 實現 package org.xiazdong.list public class myarraystack public void push t e top if top t.length t top e publ...

資料結構複習 棧

棧,也是一種表結構,特點是先進後出。實現方式也有兩種 陣列和鍊錶。本文主要是複習,老鳥跳過!具體主要包括以下操作 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...