zoukankan      html  css  js  c++  java
  • 栈应用----二进制转十进制

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<math.h>
     4 
     5 #define STACK_INIT_SIZE 20 
     6 #define STACKINCREMENT  10
     7 
     8 typedef char ElemType;
     9 typedef struct  
    10 {
    11     ElemType *base;
    12     ElemType *top;
    13     int stackSize;
    14 }sqStack;
    15 
    16 void InitStack(sqStack *s)
    17 {
    18     s->base = (ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
    19     if(!s->base)
    20     {
    21         exit(0);
    22     }
    23 
    24     s->top = s->base ;
    25     s->stackSize = STACK_INIT_SIZE;
    26 }
    27 
    28 void Push(sqStack *s ,ElemType e)
    29 {
    30     if(s->top - s->base >= s->stackSize)
    31     {
    32         s->base = (ElemType*)realloc(s->base , (s->stackSize + STACKINCREMENT)*sizeof(ElemType));
    33         if(!s->base)
    34             exit(0);
    35     }
    36 
    37     *(s->top) = e;
    38     s->top++;
    39 }
    40 
    41 
    42 void Pop(sqStack *s , ElemType* e)
    43 {
    44     if(s->top == s->base)
    45     {
    46         return;
    47     }
    48     *e = *(--s->top );
    49 }
    50 
    51 int StackLen(sqStack s)
    52 {
    53     return (s.top - s.base);
    54 }
    55 
    56 void main()
    57 {
    58     ElemType e;
    59     sqStack s;
    60     int len,i,sum = 0;
    61 
    62     InitStack(&s);
    63 
    64     printf("请输入2进制数,输入#表示结束:");
    65     scanf("%c",&e);//以字符形式输入1111001,会一个一个字符的形式输入到缓冲区,要以整形,则1111001一次以整形数存放在栈中占一个空间
    66     while(e != '#')
    67     {
    68         Push(&s,e);
    69         scanf("%c",&e);
    70     }
    71     getchar();//把'
    '从缓冲区中去掉
    72 
    73     len = StackLen(s);
    74 
    75     printf("栈当前容量是:%d
    ",len);
    76     for(i = 0 ; i <len ;i++)
    77     {
    78         Pop(&s,&e);
    79         sum = sum + (e - 48)*pow(2,i);///***************
    80 
    81     }
    82     printf("转换为十进制数为:%d
    ",sum);
    83 }
  • 相关阅读:
    CentOS 7修改用户密码
    Java EE(Web)大方向
    【Spring学习随笔】4. Spring AOP
    Git从本地上传项目到Github
    Vue及Vue-Cli的环境搭建(Windows)
    【Spring学习随笔】3. Spring Bean
    SSM框架随笔
    IDEA中Spring配置错误:class path resource [.xml] cannot be opened because it does not exist
    Jsp技术
    【Spring学习随笔】2. Spring IoC
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3178916.html
Copyright © 2011-2022 走看看