關於marked陣列處理,分3種情況
1一般的遍歷(遍歷結點), marked陣列一旦標記上就不會再unmark,即乙個結點訪問一次
2有無路徑,求任意一條路徑,有無環問題,
同1,mark了就不會unmark,因為如果之前經過這個點,沒有路徑,或者沒有環,那麼這次也不會有;而如果有路徑或者有環,之前就得到結果退出了
3所有路徑:
是否unmark看情況,如果經過這個點有通路,也就是任意一條邊的方向上有通路,則這個點要unmark,因為可以作為另一條合法路徑的子路徑。如果經過這個點沒通路,則不unmark,已經知道是死路,別的前驅就不必再進入了。
節點的訪問情況可以有多種狀態,0 代表未訪問過,1代表訪問中(in stack), 2 代表之前訪問過。第三種情況可以繼續細分,1)之前訪問過且有路徑2.1,2)之前訪問過但不存在路徑2.2。具體的,多路徑問題,marke狀態為0或者2.1則可以進入,狀態為1或者2.2則不進入。
關於陣列的批量處理 偽陣列法
之前曾寫過一篇 linux unix不同shell環境下陣列的處理 在這裡簡單談談bash 和ksh下陣列的批量處理。實際中陣列在相容性要求很高的情況下不是很好的實現方式,我個人認為自己構造變數序列也不失是一種解決手段。姑且我把這種陣列的批量處理叫做 偽陣列法 下面的內容適用於bash和ksh,不適...
簡單的關於陣列的處理
1 array push 這個函式用於在陣列元素的末尾新增新元素 2 unset 允許刪除陣列中的某個鍵值對,但是刪除後陣列不會重建索引。若需要將刪除後的陣列重建索引,可以使用array values 例如 a array 1 one 2 two 3 three unset a 2 新陣列為 a a...
關於預處理
1.能用巨集定義開始或者結束一段注釋嗎?例如 define bsc define bmc define emc 那麼 bsd my single line comment bmc my single line comment emc 正確嗎?答案是不正確的,這是因為 注釋先於預處理指令被處理 當這兩...