zoj 1004 深度優先遍歷

2021-06-06 13:38:07 字數 645 閱讀 3080

題目大意:兩組數,第一組字串通過壓棧彈棧順序,得到第二組資料,輸出壓棧彈棧順序,解有多個,按照字典序輸出

解題思路:深度優先遍歷,借助乙個棧來儲存第乙個字串壓棧的狀態,優先考慮壓棧操作,注意的是邊界條件,滿足第二個字串掃瞄到尾部時,輸出結果

#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對應的節點 遍歷過...