?? function_define.cpp
字號(hào):
/*出版人:袁志浩(2005144070)
應(yīng)用數(shù)學(xué)與信息計(jì)算科學(xué)系B班
2007-4-27
*/
#include<stdio.h>
#include"file.h"
#include<malloc.h>
#include<stdlib.h>
/***************************************************************************/
Status CreateStack(LinkStack &S)//創(chuàng)造鏈棧
{
S.base=S.top=(SLink)malloc(sizeof(SNode));//棧底和棧頂元素都指向同個(gè)元素
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);//如果是空棧返回錯(cuò)誤
p=S.top;
e=p->data;//用e存儲(chǔ)元素的值
S.top=p->next;//棧頂指針指向刪除結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)
free(p);//解放p
return OK;
}
/***************************************************************************/
Status transform()//實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)化為二進(jìn)制
{
int y,div;
LinkStack S;
CreateStack(S);//創(chuàng)建鏈表
scanf("%d",&div);//得到要轉(zhuǎn)化的值
while(div) {push(S,div%2);div=div/2;}//把div除以2的余數(shù)入棧,其的商又賦值于div,實(shí)行迭代
printf("結(jié)果是: ");
while(S.top!=S.base) {pop(S,y);printf("%d",y);}//出棧,打印棧的元素
return OK;
}
/*********************************結(jié)束***************************************/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -