⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conversion.cpp

📁 文件夹中包括常用的数据结构的算法
💻 CPP
字号:
#include <stdio.h> 
#include <malloc.h>
#include <string.h> 

#define  STACK_INIT_SIZE  100; 
#define  STACKINCREMENT   10;  
#define  OVERFLOW 0
#define  OK 1
#define  ERROR 0

typedef struct
{ 
    int  *base;    
    int  *top;  
    int  stacksize;    
} SqStack;



int InitStack (SqStack *S)
{// 构造一个空栈S
    S->base = (int *)malloc( 100 * sizeof(int));
    if (!S->base) return OVERFLOW; //存储分配失败
    S->top = S->base;
    S->stacksize = STACK_INIT_SIZE;
    return OK;
};



int Push (SqStack *S, int e)
{ 
	if (S->top - S->base >= S->stacksize)  //栈满,追加存储空间
    { 
		S->base = (int *) realloc ( S->base,
                  (S->stacksize + 10) * 
                  sizeof (int));
        if (!S->base) return OVERFLOW; //存储分配失败
        S->top = S->base + S->stacksize;
        S->stacksize += STACKINCREMENT;
    };
    *S->top++ = e;
    return OK;
};


int Pop (SqStack *S, int *e)
{    // 若栈不空,则删除S的栈顶元素,
     // 用e返回其值,并返回OK;
     // 否则返回ERROR
    if (S->top == S->base) return ERROR;
    *e = *--S->top;
    return OK;
};

bool StackEmpty(SqStack *S)
{
    if (S->top - S->base == 0)
	{return 1;}
	else
	{
		return 0;
	};
};

void conversion ()
{   
	SqStack S;
	int N, e;

	InitStack(&S); 
    printf ( "Please input the num\n");

    scanf ("%d",&N);
    while (N)
    { 
		Push(&S, N % 8);
        N = N/8;
    };
    while (!StackEmpty(&S))
	{   
		Pop(&S, &e);
        printf ( "%d", e );
    };
	printf ( "\n");
} // conversion


void main()
{
    conversion();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -