国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 渑池县| 堆龙德庆县| 芮城县| 乐昌市| 绵竹市| 宁海县| 镇坪县| 临猗县| 迭部县| 大足县| 汶川县| 靖边县| 南木林县| 新竹县| 万宁市| 乐安县| 淮滨县| 广元市| 乌审旗| 丹棱县| 南通市| 栾城县| 余江县| 呼伦贝尔市| 中山市| 赣榆县| 亚东县| 云梦县| 赤水市| 桐乡市| 顺昌县| 密山市| 四川省| 馆陶县| 祁门县| 蒲江县| 孟连| 明溪县| 望江县| 通化县| 江达县|