最近新學習到了棧,對於棧的理解比較淺顯,這裡說一下棧的基本操作,用了進製轉換的例子:
以十進位制為例子,例如:
(1348)10=(2504)8
運算過程:
n ndiv 8nmod 8
1348 168 4
168 21 0
21 2 5
2 0 2
下面是**部分:
1.定義棧
typedef structsqstack;
2.初始化棧
//initiate the stack
int initstack(sqstack &s)
3.壓棧
//push an element into the stack
int push(sqstack &s,int
e)
*(++s.top)=e;
return1;
}
4.出棧
//pop an element from the stack
int pop(sqstack &s,int &e)
5.獲取棧頂元素
//get the top of the stack
int gettop(sqstack s,int &e)
6.進製轉換
void conversion(int num,intsize)
while (s.top!=s.base
)
}
總結:利用棧的lifo的特點,恰好能夠快速地處理進製轉換時倒敘輸出的方式,這個例子也能很好地理解棧的特點,學習棧的初始化,棧操作:壓棧,出棧,獲取棧頂元素等。
C 十進位制轉其他進製
c 十進位制轉其他進製 開發工具與關鍵技術 c visualstudio在學習c 基礎過程中,接觸到進製轉換,個人想要嘗試一下用c 來寫乙個進製轉換,這篇文章主要內容是十進位制轉其他進製,現在的進製有十六進製制 十進位制 八進位制 二進位制。我們先來看 include include using n...
資料結構示例之十進位制轉換其他進製
以下為 十進位制數轉換為其他進製數 的示例 1.用c語言實現的版本 include include define stacksize 100 假定預分配的棧空間最多為100個元素 typedef int datatype 假定棧元素的資料型別為整型 typedef structseqstack 初始...
資料結構之 棧 十進位制轉d進製(堆疊陣列模擬)
其實這篇文章開出來主要是水文章 棧 後進先出的婊 特點 只能在某一端插入和刪除的特殊的線性表 操作 進棧 push 向棧頂插入元素 出棧 pop 將棧頂元素刪除 實現 定義乙個長為n的陣列,用乙個top 相當於指標 指向棧頂,若top 0,則表示棧空 top n,則表示棧滿。進棧時top 1,出棧時...