其實這篇文章開出來主要是水文章%% %%
棧——後進先出的婊
特點:只能在某一端插入和刪除的特殊的線性表
操作:進棧——push—>向棧頂插入元素
出棧——pop——>將棧頂元素刪除
實現:定義乙個長為n的陣列,用乙個top(相當於指標)指向棧頂,若top=0,則表示棧空;top=n,則表示棧滿。
進棧時top+1,出棧時top-1. 棧指標(top)在運算中永遠都指向棧頂
若top>n(n為棧的長度),則為溢位,做出錯處理;若top<0,則為下溢,同樣做出錯處理
【具體講就是——進棧時——>檢查棧是否已滿(top是否等於n)——>不滿則進棧,滿則做出錯處理
】【出棧時——>檢查棧是否為空(top是否等於0)——>不為空則出棧,棧空則做出錯處理】
大致實現如下:
#dfine n 100void 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 ...