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

📄 function_define.cpp

📁 用链栈求十进制化为二进制C语言数据结构版
💻 CPP
字号:
/*出版人:袁志浩(2005144070)
  应用数学与信息计算科学系B班
  2007-4-27
*/

#include<stdio.h>
#include"file.h"
#include<malloc.h>
#include<stdlib.h>

/***************************************************************************/
Status CreateStack(LinkStack &S)//创造链栈
{
	S.base=S.top=(SLink)malloc(sizeof(SNode));//栈底和栈顶元素都指向同个元素
	if(!S.base) exit(OVERFLOW);
	S.base->next=NULL;
	return OK;
}
/***************************************************************************/
Status push(LinkStack &S,ElemType e)//插入元素e到链栈中
{
    SLink p;
	p=(SLink)malloc(sizeof(SNode));
	if(!p) exit(OVERFLOW);
	p->next=S.top;p->data=e;//p的next指向栈顶
	S.top=p;//栈顶指针指向插入的元素
	return OK;
}
/****************************************************************************/
Status pop(LinkStack &S,ElemType &e)//删除栈顶元素,用e返回其值
{
    SLink p;
	if(S.top==S.base) return(ERROR);//如果是空栈返回错误
	p=S.top;
	e=p->data;//用e存储元素的值
	S.top=p->next;//栈顶指针指向删除结点的前一个结点
	free(p);//解放p
	return OK;
}
/***************************************************************************/
Status transform()//实现十进制转化为二进制
{
	int y,div;
	LinkStack S;
    CreateStack(S);//创建链表
	scanf("%d",&div);//得到要转化的值
    while(div) {push(S,div%2);div=div/2;}//把div除以2的余数入栈,其的商又赋值于div,实行迭代
	printf("结果是:  ");
	while(S.top!=S.base) {pop(S,y);printf("%d",y);}//出栈,打印栈的元素
	return OK;
}
/*********************************结束***************************************/

⌨️ 快捷键说明

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