資料結構與演算法 10 棧的應用 括號匹配

2021-09-22 12:19:19 字數 1299 閱讀 8822

//括號匹配

/*演算法思想:

**若是左括號,入棧,若是右括號,則出棧乙個左括號判斷是否與之匹配;

**檢驗棧是否為空,只有棧空,整個字串才是括號匹配的。

*/#include

#include

#include

#define elemtype char

using namespace std;

typedef

struct snodesnode,

*slink;

typedef

struct

stack;

//初始化棧

void

initstack

(stack &s)

;//入棧操作

bool push

(stack &s,elemtype e)

;//出棧操作

bool pop

(stack &s,elemtype &e)

;//判斷棧是否為空

bool empty

(stack s)

;//判斷函式

bool check

(char

*str)

;int

main

(void

)else

return0;

}//判斷函式

bool check

(char

*str)

}else

break

;case

']':if(

pop(s,e))}

else

break;}

}if(empty

(s))

else

}//初始化棧

void

initstack

(stack &s)

//入棧操作

bool push

(stack &s,elemtype e)

//出棧操作

bool pop

(stack &s,elemtype &e)

snode *p = s.top->next;

e = p->data;

s.top->next = p->next;

s.count--

;free

(p);

return true;

}//判斷棧是否為空

bool empty

(stack s)

else

}

資料結構 棧的應用 括號匹配

include include include 鏈式棧 括號匹配校驗 define success 0 define failure 1 typedef struct nodestnode def typedef struct linkstackstlinkstack def typedef voi...

資料結構與演算法 棧的應用

逆序輸出 輸出的次序和處理次序相反,而且遞迴的深度不容易預知。比如進製轉換,括號匹配 進製轉換 void convert stack char s,int n,int base while n 0 括號匹配 括號匹配 bool paren vector char v elseif s.empty e...

資料結構與演算法(4) 棧的應用

include include include using namespace std bool matchbrackets char pstr else if pstr i pstr i pstr i else s.top else if s.empty else int main char pt...