棧的基本操作及其應用

2022-10-11 04:12:08 字數 1205 閱讀 3884

這裡順序棧和鏈棧的基本操作和差別在之前的線性表操作中是一樣的,目前棧對我而言在實際使用中使用哪一種差別並沒有很大,順序棧用起來會方便一點

順序棧

>>adt:

typedef struct

seqstack;

>>入棧:

int push(seqstack *s, datatype x)

>>出棧:

int pop(seqstack *s, datatype *ptr)

鏈棧>>入棧:

void push(node *top, datatype x)

>>出棧:

int pop(node *top, datatype *ptr)

棧的應用1. 進製轉化

思路:用短除法(具體原理可以去看數學證明)求餘數時,結果要逆序輸出,利用棧的先進後出特點可以滿足這個要求

#include #include 

using

namespace

std;

intmain()

while (!s.empty())

return0;

}

2. 括號匹配

#include #include 

using

namespace

std;

intmain()')

else')

s.pop();

else

} }}

if (s.empty()) printf("

yes"

);

else printf("no"

);

return0;

}

棧操作及其應用

棧可以是順序棧,也可以是鏈棧。順序棧 1 const int maxsize 100 2 順序棧 3struct sqstack78 void initstack sqstack s 912 13int isempty sqstack s 1420 21int push sqstack s,int ...

棧和佇列的基本操作實現及其應用

實驗2 棧和佇列的基本操作實現及其應用 一 實驗目的 1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。二 實驗內容 1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實...

鏈棧及其基本操作

public inte ce istack import ch02.node public class linkstack implements istack 測試棧是否為空 public boolean isempty 求棧中的資料元素個數並由函式返回其值 public int length re...