最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)

 更新時(shí)間:2017年06月28日 17:01:36   投稿:lqh  
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)的相關(guān)資料,需要的朋友可以參考下

數(shù)據(jù)結(jié)構(gòu) 中數(shù)制轉(zhuǎn)換(棧的應(yīng)用)

問(wèn)題描述:

 將一個(gè)非負(fù)的十進(jìn)制整數(shù)N轉(zhuǎn)換為另一個(gè)等價(jià)的基為B的B進(jìn)制數(shù)的問(wèn)題。

解答:按除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<stdio.h> 
#include<malloc.h> 
#include<stdlib.h> 
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; 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論

台北市| 东乡族自治县| 丹巴县| 竹山县| 乌兰察布市| 英德市| 汕头市| 乐平市| 比如县| 勃利县| 札达县| 武宣县| 屏南县| 晋宁县| 阿鲁科尔沁旗| 贵南县| 建阳市| 莱西市| 浮山县| 黔西| 栖霞市| 登封市| 济南市| 龙口市| 利津县| 长泰县| 林口县| 霍州市| 古交市| 永定县| 漠河县| 白沙| 巴彦淖尔市| 武宁县| 克山县| 运城市| 温泉县| 临江市| 拜城县| 马边| 怀化市|