數(shù)據(jù)結構括號匹配算法 C 數(shù)據(jù)結構,判斷一個字符串中括號是否匹配?
C 數(shù)據(jù)結構,判斷一個字符串中括號是否匹配?這個想法是在遇到左括號時進入堆棧,在遇到右括號時判斷堆棧的頂部元素是否與左括號匹配。如果不是,則返回false;如果是,則彈出堆棧的頂部元素,然后繼續(xù)下
C 數(shù)據(jù)結構,判斷一個字符串中括號是否匹配?
這個想法是在遇到左括號時進入堆棧,在遇到右括號時判斷堆棧的頂部元素是否與左括號匹配。如果不是,則返回false;如果是,則彈出堆棧的頂部元素,然后繼續(xù)下一個字符。判斷函數(shù)如下:bool is ucomm uuuuustack(char const*src){assert(src)char ch char const*p=src stack<char> s while(*p){switch(*p){case“(”:case”[”:case“{”:s.push(*p)break case”:if(!s、 empty()){if((ch=s.top())!=“(”)return false else{s.pop()break}}else return false case“]”:if(!s、 empty()){if((ch=s.top())!=“[”)return false else{s.pop()break}}else return false case“}”:if(!s、 empty()){if((ch=s.top())!=“{”)return false else{s.pop()break}}else return false默認值:break}p}if(!s、 empty())return false顯然,您需要先了解一種編程語言。數(shù)據(jù)結構可以用不同的語言實現(xiàn)。您可以看到常用的數(shù)據(jù)結構教材,有的基于C,有的基于CPP,還有的基于Java。先學習一門語言(不一定是C),然后再看數(shù)據(jù)結構,這將幫助您了解各種算法和結構是如何實現(xiàn)的。事實上,當我剛開始編程時,我以為我在學習一門新語言。和外國人打交道就像學英語一樣。你學習高級語言來處理計算機(事實上,它們只是編譯器)。你可以“翻譯”你想對她說的話,告訴她我想做什么,我想成為什么樣的人。在這個時候,您所學到的并不像數(shù)據(jù)結構那樣符合邏輯。有些東西必須死記硬背(括號的配對,什么是常量變量關鍵字,各種語句的使用規(guī)則,數(shù)組的定義和使用…)不要覺得這么復雜,只知道發(fā)生了什么。之后,還有一些有趣的東西值得研究——比如指針