算法習題---棧與隊列之棧的數學性質


一:棧的數學性質

當n個編號元素以某種順序進棧,並且可以在任意時刻出棧,所獲得的編號元素排列的數目N恰好滿足Catalan函數的計算,即

二:題目一:

試着將1,2,3,4,5,6,六個數字入棧,則出棧方式有幾種?使用數學性質可以知道有132種

三:其他題目:判斷棧給定的操作序列的合法性

I入棧O出棧,例如ABC入棧,出棧為CBA,那么給定序列為IIIOOO,表示3個先入棧,然后出棧
現在給定一個序列(只含IO)要求判斷其是否合法

四:性質

1.IO個數一致
2.開始到中間任一位置I的數目大於O數目

五:實現代碼

int judge(char ch[])
{
    int inp, out;
    int i;
    inp = out = i = 0;
    while (ch[i] != '\0')
    {
        if (ch[i] == 'O')
            out++;
        else
            inp++;
        if (out > inp)
            return 0;
        i++;
    }
    if (inp != out)
        return 0;
    return 1;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM