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

首頁(yè) > 編程 > C > 正文

C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中數(shù)制轉(zhuǎn)換實(shí)例代碼

2020-01-26 14:12:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中數(shù)制轉(zhuǎn)換實(shí)例代碼

   數(shù)制轉(zhuǎn)換是嚴(yán)蔚敏的數(shù)據(jù)結(jié)構(gòu)那本書(shū)中的例子,但是那本書(shū)中的例子大都是用偽代碼的形式寫(xiě)的,不是很容易理解和實(shí)現(xiàn),對(duì)初學(xué)者造成了不小的困擾,在這里我們將其詳盡的實(shí)現(xiàn)出來(lái),以便初學(xué)者調(diào)試和運(yùn)行,并從中有所收獲。     

#include <stdlib.h>#include <stdio.h>#include<malloc.h>#define STACK_INIT_SIZE 10  //定義最初申請(qǐng)的內(nèi)存的大小 #define STACK_INCREMENT 2  //每一次申請(qǐng)內(nèi)存不足的時(shí)候擴(kuò)展的大小  #define OVERFLOW 0 #define FALSE 0 #define TRUE 1 #define ERROR 0 #define INFEASIBLE 0 #define OK 1 typedef int SElemType; typedef int Status; int Length;typedef struct SqStack{     int stacksize;          SElemType *top;  SElemType *base;}SqStack;Status InitStack(SqStack &S){    if(!(S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof( SElemType))))    exit(-1);S.top = S.base;S.stacksize = STACK_INIT_SIZE;return OK;}Status Push(SqStack &S , SElemType e){ if(S.top - S.base >= S.stacksize) {      S.base = (SElemType *)realloc(S.base,(S.stacksize+STACK_INCREMENT) * sizeof( SElemType));      if(!S.base)          exit(OVERFLOW);   S.top = S.base + S.stacksize;   S.stacksize += STACK_INCREMENT; } *S.top++ = e; return OK;}void OutList(SqStack S ){     S.top = S.base; for(int i = 0; i<Length ; i ++){    printf("%d/t",*(S.top)++);  }       printf("/n"); // 輸出后換行 }Status StackEmpty(SqStack S) {    if(S.top == S.base) { return TRUE; }else{  return FALSE; }}Status Pop(SqStack &S,SElemType &e){ if(S.top ==S.base) return ERROR; e = * --S.top; return OK;}void conversion() // 算法3.1 { SqStack s; //順序棧s      unsigned n, m; // 非負(fù)整數(shù)     SElemType e; //棧元素e      InitStack(s); // 構(gòu)造空棧s      printf("請(qǐng)輸入十進(jìn)制數(shù)n(>=0) = ");      scanf("%u", &n); // 輸入非負(fù)十進(jìn)制整數(shù)n      printf("/n請(qǐng)輸入需要轉(zhuǎn)換到的進(jìn)制: ");      scanf("%u", &m); // 輸入非負(fù)十進(jìn)制整數(shù)n      printf("十進(jìn)制數(shù)%u的八進(jìn)制數(shù)是", n);      while (n) // 只要n不等于0就循環(huán)        //從n為用戶輸入的十進(jìn)制數(shù)開(kāi)始,一直到n等于0為止     {         Push(s, n % m); // n除以8的余數(shù)(8進(jìn)制的低位)入棧        //把n除以8的余數(shù)壓入棧s         //先壓入的余數(shù)是八進(jìn)制的低位,后壓入的余數(shù)是八進(jìn)制的高位        n = n / m; //令n等于n整除以8的商,進(jìn)入下輪循環(huán)     }      //循環(huán)結(jié)束時(shí),n等于0      while (!StackEmpty(s)) // 只要棧s沒(méi)彈空就不斷循環(huán),        //直到彈出棧底元素棧s為空為止     {         Pop(s, e); // 彈出棧頂元素且賦值給e        //依次彈出棧s的棧頂元素交給e帶回        //先彈出的是八進(jìn)制的高位,后彈出的是八進(jìn)制的低位        printf("%d", e); // 依次輸出e      }      //循環(huán)結(jié)束時(shí),棧s為空     printf("/n");  }int main(){ /********************** 函數(shù)聲明區(qū) **********************/     Status InitStack(SqStack &S);      Status Push(SqStack &S, SElemType e);      void OutList(SqStack S);      /********************** 函數(shù)執(zhí)行區(qū) **********************/     conversion();     return 0;}

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

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

圖片精選

主站蜘蛛池模板: 拉萨市| 岳西县| 张掖市| 东海县| 三门峡市| 库尔勒市| 临沭县| 霸州市| 伊春市| 西乡县| 和平县| 澎湖县| 婺源县| 香格里拉县| 栖霞市| 泸水县| 九龙县| 莎车县| 南郑县| 梅河口市| 屏东市| 鹰潭市| 白山市| 奇台县| 中山市| 阿合奇县| 杭州市| 保靖县| 子洲县| 尼木县| 舟曲县| 顺平县| 阿坝县| 威海市| 芦山县| 建始县| 蒙城县| 柞水县| 芦溪县| 鹤庆县| 华坪县|