国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 14:02:51
字體:
供稿:網(wǎng)友

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

問題描述:

 將一個非負(fù)的十進(jìn)制整數(shù)N轉(zhuǎn)換為另一個等價的基為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é)果的最高位,因此很容易用棧來解決。

代碼如下:

#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; } 

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 得荣县| 嘉黎县| 东阿县| 巴林左旗| 南阳市| 休宁县| 黄梅县| 闻喜县| 鄂伦春自治旗| 西畴县| 平顺县| 大城县| 耿马| 中西区| 九龙坡区| 阳山县| 博兴县| 思茅市| 黑山县| 威信县| 朔州市| 靖安县| 湘乡市| 龙里县| 扎鲁特旗| 涿州市| 永兴县| 新安县| 蓝田县| 冕宁县| 秭归县| 金寨县| 鸡泽县| 财经| 旬邑县| 遵化市| 黄浦区| 读书| 三江| 凉山| 固始县|