數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比臨武網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式臨武網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨武地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。問題描述:
將一個(gè)非負(fù)的十進(jìn)制整數(shù)N轉(zhuǎn)換為另一個(gè)等價(jià)的基為B的B進(jìn)制數(shù)的問題。
解答:按除2取余法,得到的余數(shù)依次是1、0、1、1,則十進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù)為1101。
分析:由于最先得到的余數(shù)是轉(zhuǎn)化結(jié)果的最低位,最后得到的余數(shù)是轉(zhuǎn)化結(jié)果的最高位,因此很容易用棧來(lái)解決。
代碼如下:
#include#include #include typedef struct Node { int data; struct Node * pNext; }NODE ,*PNODE; typedef struct Stack { PNODE pTop; PNODE pBottom; }STACK,*PSTACK; bool empty(PSTACK ps) { if(ps->pTop == ps->pBottom) return true; else return false; } void initstack(PSTACK ps) { ps->pTop=(PNODE)malloc(sizeof(NODE)); if (NULL == ps->pTop) { printf("初始化失?。n"); exit(-1); } else { ps->pBottom=ps->pTop; ps->pTop->pNext=NULL; } return ; } void push(PSTACK ps,int val) { PNODE pNew=(PNODE)malloc(sizeof(NODE)); pNew->data=val; pNew->pNext=ps->pTop; ps->pTop=pNew; return; } void pop(PSTACK ps) { int x; if(empty(ps)) { //printf("出棧失??!"); return ; } else { PNODE p=ps->pTop; x=p->data; ps->pTop=p->pNext; free(p); p=NULL; printf("%d",x); return ; } } int main() { int i,N,B; STACK S; scanf("%d",&N); scanf("%d",&B); initstack(&S); while(N) { push(&S,N%B); N=N/B; } while(S.pBottom!=NULL) { pop(&S); } system("pause"); return 0; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。