数据结构(严蔚敏)顺序栈_数制转换

来源:互联网 发布:怎么彻底清除黑头 知乎 编辑:程序博客网 时间:2024/06/05 14:32

 代码如下:

注意:

1、p48页 算法3.1

2、把此段代码添加到“数据结构(严蔚敏)顺序栈” 就可以了

对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数

void conversion() /* 算法3.1 */
 {   SqStack s;
   unsigned n; /* 非负整数 */
   SElemType e;
   InitStack(&s); /* 初始化栈 */
   printf("n(>=0)=");
   scanf("%u",&n); /* 输入非负十进制整数n */
   while(n) /* 当n不等于0 */
   {
     Push(&s,n%8); /* 入栈n除以8的余数(8进制的低位) */
     n=n/8;
   }
   while(!StackEmpty(s)) /* 当栈不空 */
   {
     Pop(&s,&e); /* 弹出栈顶元素且赋值给e */
     printf("%d",e); /* 输出e */
   }
   printf("/n");
 } 

  对于输入的任意一个非负10进制整数,打印输出与其等值的16进制数

void conversion()
 {   SqStack s;
   unsigned n; /* 非负整数 */
   SElemType e;
   InitStack(&s); /* 初始化栈 */
   printf("n(>=0)=");
   scanf("%u",&n); /* 输入非负十进制整数n */
   while(n) /* 当n不等于0 */
   {
     Push(&s,n%16); /* 入栈n除以16的余数(16进制的低位) */
     n=n/16;
   }
   while(!StackEmpty(s)) /* 当栈不空 */
   {
     Pop(&s,&e); /* 弹出栈顶元素且赋值给e */
     if(e<=9)
       printf("%d",e);
     else
       printf("%c",e+55);
   }
   printf("/n");
 }

 

原创粉丝点击