第六周项目4-数制转换

原创 2015年11月20日 08:48:14

Copyright (c) 2015,烟台大学计算机学院

All rights reserved,

文件名称:idea.cpp

作者:王阳

完成日期:2015年11月20日

#define MaxSize 100
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int top;                //栈指针
} SqStack;                  //顺序栈类型定义

void InitStack(SqStack *&s);    //初始化栈
void DestroyStack(SqStack *&s);  //销毁栈
bool StackEmpty(SqStack *s);     //栈是否为空
int StackLength(SqStack *s);  //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s);  //输出栈

#include <stdio.h>
#include <malloc.h>
#include "sqstack.h"

void InitStack(SqStack *&s)
{
    s=(SqStack *)malloc(sizeof(SqStack));
    s->top=-1;
}
void DestroyStack(SqStack *&s)
{
    free(s);
}
int StackLength(SqStack *s)  //返回栈中元素个数——栈长度
{
    return(s->top+1);
}
bool StackEmpty(SqStack *s)
{
    return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
    if (s->top==MaxSize-1)    //栈满的情况,即栈上溢出
        return false;
    s->top++;
    s->data[s->top]=e;
    return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
    if (s->top==-1)     //栈为空的情况,即栈下溢出
        return false;
    e=s->data[s->top];
    s->top--;
    return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
    if (s->top==-1)         //栈为空的情况,即栈下溢出
        return false;
    e=s->data[s->top];
    return true;
}

void DispStack(SqStack *s)  //输出栈
{
    int i;
    for (i=s->top;i>=0;i--)
        printf("%c ",s->data[i]);
    printf("\n");
}

#include <stdio.h>
#include "sqstack.h"

void MultiBaseOutput (int number,int base)
{
    //假设number是非负的十进制整数,输出等值的base进制数
    int i;
    SqStack *S;
    InitStack(S);
    while(number)   //从右向左产生base进制的各位数字,并将其进栈
    {
        Push(S,number%base); //将将余数进栈
        number/=base;
    }
    while(!StackEmpty(S))   //栈非空时退栈输出
    {
        Pop(S, i);
        printf("%d",i);
    }
}
int main()
{
    MultiBaseOutput(10, 2);
    return 0;
}

相关文章推荐

第六周项目(4):数制转换

问题及代码: 头文件: /* *烟台大学计算机与控制工程学院 *作 者:杨宁 *完成日期:2015年10月7日 *问题描述:把十进制数转换为二至九之间的任意进制数输出。请利用栈设计算法,并实...
  • yn2333
  • yn2333
  • 2015年10月07日 18:20
  • 360

第六周—项目4 - 数制转换

问题及代码: /* *Copyright(c)2015,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main.cpp *作者:程昂 *完成...
  • luguoca
  • luguoca
  • 2015年10月09日 08:53
  • 300

第六周实践项目4--数制转换

问题及代码: /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第6周项目4--数...
  • TonyABu
  • TonyABu
  • 2015年10月12日 16:56
  • 328

第六周项目5 数制转换

/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:shuzhizhuanhuan.cpp *作者:朱希康 *完成日期:...

第六周项目四数据结构实践——数制转换(栈)

#ifndef SQSTACK_H_INCLUDED #define SQSTACK_H_INCLUDED /* 02.* Copyright (c) 2015, 烟台大学计算机与控制工程学...

【第五周项目4-数制转换】

问题及代码: /* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:Cube007.cpp * 作 ...

第五周项目4-数制转换

问题描述及代码: [cpp] view plain copy 1. /* 2. *烟台大学计控学院 3. *作 者:朱建豪 4. *完成日期:2016年9月30日 5. *问题描述【项目...

【栈项目4 - 数制转换——第6周】

数制转换 /* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp,changesystem....

第五周项目4 -数制转换

代码及问题描述 /* *烟台大学计控学院 *作 者:张雯婧 *完成日期:2016年9月25日 *问题描述【项目 - 数制转换】 把十进制的整数转换为任一进制数输出。请利用栈设计算法,并实...

第五周 项目4-数制转换

顺序栈的应用
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周项目4-数制转换
举报原因:
原因补充:

(最多只允许输入30个字)