()能得到在依次進棧後和出棧得部分輸出序列然後入棧出棧得部分出棧序列入棧並出棧得部分輸出序列最後退棧直到棧空得輸出序列其操作序列為AAADDAADADDD
()不能得到輸出順序為的序列部分合法操作序列為ADAAAADDAD得到部分輸出序列後棧中元素為在棧頂故不可能先出棧得不到輸出序列
()一個函數在結束本函數之前直接或間接調用函數自身稱為遞歸例如函數f在執行中又調用函數f自身這稱為直接遞歸若函數f在執行中調用函數g而g在執行中又調用函數f這稱為間接遞歸在實際應用中多為直接遞歸也常簡稱為遞歸
()遞歸程序的優點是程序結構簡單清晰易證明其正確性缺點是執行中占內存空間較多運行效率低
()遞歸程序執行中需借助棧這種數據結構來實現
()遞歸程序的入口語句和出口語句一般用條件判斷語句來實現遞歸程序由基本項和歸納項組成基本項是遞歸程序出口即不再遞歸即可求出結果的部分歸納項是將原來問題化成簡單的且與原來形式一樣的問題即向著基本項發展最終到達基本項
函數調用結束時vol=執行過程圖示如下
過程p遞歸調用自身時過程p由內部定義的局部變量在p的次調用期間不占同一數據區每次調用都保留其數據區這是遞歸定義所決定用遞歸工作棧來實現
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/22717.html