括號匹配問題 棧的應用

2021-08-15 19:50:27 字數 1460 閱讀 9539

#pragma once

#ifndef _stack_h_

#define _stack_h_

#define datatype char

#define max_size 20

typedef struct stack

stack;

// 初始化棧

void stackinit(stack* s);

// 壓棧

void stackpush(stack* s, datatype data);

// 出棧

void stackpop(stack* s);

// 獲取棧頂元素

datatype stacktop(stack* s);

// 獲取棧中元素個數

int stacksize(stack* s);

// 檢測棧是否為空

int stackempty(stack* s);

#endif //_stack_h_

#include 

#include

#include

#include "stack.h"

// 初始化棧

void stackinit(stack* s)

// 壓棧

void stackpush(stack* s, datatype data)

else

}// 出棧

void stackpop(stack* s)

}// 獲取棧頂元素

datatype stacktop(stack* s)

return -1;

}// 獲取棧中元素個數

int stacksize(stack* s)

// 檢測棧是否為空

int stackempty(stack* s)

else

return

0;}

#include 

#include

#include "stack.h"

int matchbrackets(char *arr)

')

else

' && stacktop(&s) == '

}arr++;

}if (stackempty(&s))

return

1; else

return3;}

main()

",//次序匹配

"(()))abc",//有括號多乙個

"(()()abc",//左括號多乙個

"(())abc"//匹配正確

};for(int i=0; i<4; i++)

}system("pause");

return

0;}

棧的應用 括號匹配問題

typedef struct stack stack,pstack 單向鏈式儲存結構 void pushstack pstack stack,char str 左括號入棧 bool popstack pstack stack,char str 左括號出棧 非常簡單的出入棧操作 這裡就說下進棧操作不用...

括號匹配問題(棧的應用)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 先了解一下棧...

括號匹配問題 棧的應用

黑馬教程 給定乙個字串,裡邊可能包含 和其它字元,編寫程式檢查字串中的小括號是否成對出現。例如 上海 長安 正確匹配 上海 長安 正確匹配 上海 長安 北京 深圳 南京 正確匹配 上海 長安 錯誤匹配 上海 長安 錯誤匹配利用棧來解決。遍歷字串,如果遇到 則將其壓入棧中,如果遇到 則做乙個彈棧的動作...