題目大意:兩組數,第一組字串通過壓棧彈棧順序,得到第二組資料,輸出壓棧彈棧順序,解有多個,按照字典序輸出
解題思路:深度優先遍歷,借助乙個棧來儲存第乙個字串壓棧的狀態,優先考慮壓棧操作,注意的是邊界條件,滿足第二個字串掃瞄到尾部時,輸出結果
#include #include #include #include using namespace std;
const int maxn = 101;
char str1[maxn], str2[maxn];
char result[2 * maxn];
int len1, len2;
void dfs(stack&st, int pos1, int pos2, int depth);
int main()
printf("[\n");
dfs(st, 0, 0, 0);
printf("]\n");
}return 0;
}void dfs(stack&st, int pos1, int pos2, int depth)
if(pos1 < len1)
if(!st.empty() && st.top() == str2[pos2])
}
zoj1004 完全二叉樹的DFS
這道題,和zoj1002實際上我覺得是差不多的。就是深度搜尋一棵二叉樹,不過當然搜尋的過程中是要減枝的。先附上 include include include includeusing namespace std int len string s1,s2 bool isok string ope e...
深度優先遍歷 廣度優先遍歷
用棧進行儲存元素。訪問頂點 頂點入棧,以便記住它 標記頂點,以便不會再訪問它 2 訪問規則 a.如果可能,訪問乙個鄰接的未訪問頂點,標記它,併入棧。b.當不能執行a時 沒有鄰接的未訪問頂點 如果棧不為空,就從棧中彈出乙個頂點。c.如果不能執行規則a和b,就完成了整個搜尋過程。3 實現 基於以上規則,...
深度優先遍歷
第一步 從開始節點查詢可達節點,如果有沒到過的可達節點則第二部,否則第三步 第二部 便利到下乙個可達節點,記錄下該節點已經到達節點 第三步 回到上一步的節點再從第一步開始 乙個節點對應他的可達節點用map表示,map的key和value分別是integer和list 用來存放key對應的節點 遍歷過...