成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

數(shù)據(jù)結(jié)構(gòu)括號(hào)匹配算法 C 數(shù)據(jù)結(jié)構(gòu),判斷一個(gè)字符串中括號(hào)是否匹配?

C 數(shù)據(jù)結(jié)構(gòu),判斷一個(gè)字符串中括號(hào)是否匹配?這個(gè)想法是在遇到左括號(hào)時(shí)進(jìn)入堆棧,在遇到右括號(hào)時(shí)判斷堆棧的頂部元素是否與左括號(hào)匹配。如果不是,則返回false;如果是,則彈出堆棧的頂部元素,然后繼續(xù)下

C 數(shù)據(jù)結(jié)構(gòu),判斷一個(gè)字符串中括號(hào)是否匹配?

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