91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據結構 中數制轉換(棧的應用)

發布時間:2020-09-14 09:58:51 來源:腳本之家 閱讀:125 作者:lqh 欄目:編程語言

數據結構 中數制轉換(棧的應用)

問題描述:

 將一個非負的十進制整數N轉換為另一個等價的基為B的B進制數的問題。

解答:按除2取余法,得到的余數依次是1、0、1、1,則十進制數轉化為二進制數為1101。

     分析:由于最先得到的余數是轉化結果的最低位,最后得到的余數是轉化結果的最高位,因此很容易用棧來解決。

代碼如下:

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰溪市| 南陵县| 明溪县| 徐水县| 漳平市| 夏津县| 台东县| 蓝田县| 沐川县| 华坪县| 措美县| 宁远县| 桂阳县| 朔州市| 嵩明县| 项城市| 肃南| 阿克苏市| 渝北区| 东辽县| 阳新县| 维西| 长宁县| 疏勒县| 德化县| 佛坪县| 绥芬河市| 西峡县| 凭祥市| 万山特区| 遵化市| 元江| 永靖县| 内丘县| 泽州县| 夏河县| 东乡县| 江华| 巴南区| 康平县| 板桥市|