[C / C++]スタックとアプリケーション- スタック·チョンC – C言語でスタック

スタックは、挿入および削除は、リストの最後に行われることができ順不同リストであり、我々はこの先端呼び出します (トップ) スタック.

ここで、コードもC ++スタックにより行う操作の数であります

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
#include <stdlib.h>
#include <stdio.h>
#include <stack> //khai bao Stack
using namespace std;
int main()
{
    stack <int> S; //Khai bao Stack
    for (int x=0; x<10; x++) //Nhap Stack
        S.push(x*2); //Them phan tu vao Stack
    printf("nDo dai Stack: %d n",S.size()); //Do dai Stack
    while(!S.empty()) //Trong khi danh sach khong rong thi duyet va xuat ra Stack
    {
        int x = S.top(); //lay gia tri Top
        S.pop(); //Loai bo phan tu Top
        printf("%d  ",x); //Xuat ra Stack
    }
    return 0;
}

スタックの応用
スタックは、コンピューティングの多くのアプリケーションを持っています :
– 基数変換 (バイナリ, 10進数, 8進数の,…)
– Postfixに中置式をジャンプ, 計算式の接尾辞,…
今、私たちは学び、インストールされます 2 問題に
– ベースジャンプ: 次のコードは、ベースを転送します 10 ベースのxキーボード入力に

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdlib.h>
#include <stdio.h>
#include <stack> //khai bao Stack
 
using namespace std;
 
int main()
{
    stack <int> S;
    int coso, so, du, n;
    printf("Nhap so can chuyen: ");
    scanf("%d",&so);
    n = so;
    printf("Nhap co so can chuyen: ");
    scanf("%d",&coso);
    while(so)
    {
        du = so % coso;
        S.push(du);
        so /= coso;
    }
    printf ("So %d trong he %d la : ", so, coso);
    while(!S.empty())
    {
        printf("%d",S.top());
        S.pop();
    }
    return 0;
}