資料結構之 棧 十進位制轉d進製(堆疊陣列模擬)

2022-06-04 20:21:11 字數 1183 閱讀 4476

其實這篇文章開出來主要是水文章%%  %%

棧——後進先出的婊

特點:只能在某一端插入和刪除的特殊的線性表

操作:進棧——push—>向棧頂插入元素

出棧——pop——>將棧頂元素刪除

實現:定義乙個長為n的陣列,用乙個top(相當於指標)指向棧頂,若top=0,則表示棧空;top=n,則表示棧滿。

進棧時top+1,出棧時top-1.  棧指標(top)在運算中永遠都指向棧頂

若top>n(n為棧的長度),則為溢位,做出錯處理;若top<0,則為下溢,同樣做出錯處理

【具體講就是——進棧時——>檢查棧是否已滿(top是否等於n)——>不滿則進棧,滿則做出錯處理

】【出棧時——>檢查棧是否為空(top是否等於0)——>不為空則出棧,棧空則做出錯處理】

大致實現如下:

#dfine n 100

void push(int s,int top,int x)

}void pop(int s,int top,int x)

}

十進位制轉d進製

刷666的都坐下,基本操作

我們用類似於堆疊陣列模擬的辦法來實現十進位制轉d進製

【演算法原理:對十進位制下的n轉為d進製時,有:n=(n/d)*d+n%d

】(好吧其實就是短除法)

如(1348)10——>(2504)8

①1348/8==168

1348%8==4      ^

②168/8==21   168%8==0    ^  |  ^

③21/8==2       21%8==5          |

④2/8==0         2%8==2       |

按著箭頭方向,倒著輸出結果,就是(1348)10——>(2504)8 的過程了       

程式實現如下:

#include#includeusing namespace std;

#dfine size 100

int a[size+1],n,d,i=0;

int main()

while(n!=0);

for(int j=i;j>=1;j--)

{    cout<

//棧的應用:

1、用乙個指標來記錄「棧頂」;

2、將元素入棧,然後出棧,達到倒序輸出的目的;

資料結構之棧 十進位制轉其他進製 棧基本操作

最近新學習到了棧,對於棧的理解比較淺顯,這裡說一下棧的基本操作,用了進製轉換的例子 以十進位制為例子,例如 1348 10 2504 8 運算過程 n ndiv 8nmod 8 1348 168 4 168 21 0 21 2 5 2 0 2 下面是 部分 1.定義棧 typedef struct ...

資料結構 棧的實現 二進位制轉十進位制

學習資料結構的棧之後,為了鞏固加深對棧的理解,通過實現乙個棧的操作來解決二進位制數轉十進位制數的問題,壓棧操作使用輸入流cin來讀入資料,cin會忽略回車符,因此不再需要getchar來對其進行 相比scanf會更加簡潔方便,直接上 include stdafx.h include stdlib.h...

m進製轉十進位制

題目描述 description 將m進製數n轉化成乙個十進位制數 m 16 題目保證轉換後的十進位制數 100 輸入描述 input description 共一行n和m 輸出描述 output description 共乙個數 表示m進製的n化成十進位制的數 樣例輸入 sample input ...