棧的應用 就近匹配

2021-07-03 19:01:48 字數 788 閱讀 6084

鏈式儲存棧的api詳情參看我的博文:棧的鏈式儲存 - api實現

就近匹配 

幾乎所有的編譯器都具有檢測括號是否匹配的能力

如何實現編譯器中的符號成對檢測?

#include int main() 

return ret;

}int isright(char c)

': ret = 1;

break;

default:

break;

} return ret;

}int match(char left, char right)

'); break;

case '\'':

ret = (right == '\'');

break;

case '\"':

ret = (right == '\"');

break;

default:

ret = 0;

break;

} return ret;

}void scanner(const char* code)

if (isright(code[i]))

} ++i;

} if (linkstack_size(stack) == 0 && code[i] == '\0')

else

linkstack_destroy(stack);

}void playscanner()

**詳情參看:

github

棧的應用 就近匹配

下面來簡單實現棧的應用小案例 就近匹配,上次我發的文獻,已封裝好鏈式棧liststack.h和liststack.cpp檔案,你可以引進你到的專案中加以使用。include liststack.h using namespace std typedef struct person person in...

棧的應用 就近匹配問題

就近匹配是棧最典型的應用,最常見的就是括號匹配。思路 遇到乙個左括號就壓棧 遇到乙個右括號就先看棧是否為空,不為空就彈棧,為空就輸出不匹配 遍歷一遍後檢查下棧是否為空,若不為空,輸出不匹配。include include include using namespace std typedef str...

棧的應用案例 就近匹配

在這裡插入 片 stack.h pragma once define crt secure no warnings include include define max 1024 棧 注意和動態陣列的區別 動態陣列這裡用的指標是二級指標因為陣列的大小無法提前確定,並且使用者陣列型別無法確定,要用vo...