棧和隊列的應用非常之廣
棧的應用
將一個非負的十進制整數N轉換為另一個等價的基為B的B進制數的問題
【例】將十進制數
解答
分析
轉換算法如下
typedef int DataType;//應將順序棧的DataType定義改為整型
void MultiBaseOutput (int N
{//假設N是非負的十進制整數
int i;
SeqStack S;
InitStack(&S);
while(N){ //從右向左產生B進制的各位數字
push(&S
N=N/B;
}
while(!StackEmpty(&S)){ //棧非空時退棧輸出
i=Pop(&S);
printf(
}
}
除數制的轉換外
(
所謂遞歸是指
遞歸是一種強有力的數學工具
遞歸算法常常比非遞歸算法更易設計
(
第一步驟(遞歸步驟)
第二步驟
【例】非負整數n的階乘可遞歸定義為
(
①調用函數時
注意
參數表的內容為實參
②被調函數執行完畢時
【例】Factorial(
From:http://tw.wingwit.com/Article/program/sjjg/201311/22672.html