算法有哪些形式

算法有哪些形式

自然语言,伪代码,程序框图,程序语言
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-01
STACK_INIT_SIZE 100
#define OVERFLOW -1
#define OK 1
#define TRUE 1
#define FALSE 0

typedef int SElemType;
typedef int Status;

typedef struct {
SElemType *base; // 存储空间基址
SElemType * top; // 栈顶指针
int stacksize; // 允许的最大存储空间
// 以元素为单位
} SqStack;

Status InitStack (SqStack &S){
S.base = new SElemType[STACK_INIT_SIZE];
if (!S.base) exit (OVERFLOW); //存储分配失败
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}

Status Push (SqStack &S, SElemType e) {
//插入元素e为新的栈顶元素
if (S.top – S.base > = S.stacksize) //栈满
return OVERFLOW;
* S. top++ = e;
return OK;
}

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

Status StackEmpty (SqStack S)
{//若栈S为空栈,则返回TRUE,否则返回 FALSE。
if (S.top = = S.base )
return TRUE;
else return FALSE;
}

void conversion () {
// 对于输入的任意一个非负十进制整数,
//打印输出与其等值的八进制数
SqStack S;
int N;
InitStack(S); // 构造空栈
print("请输入一个非负十进制整数:\n");
scanf("%d",&N); // 输入一个十进制数
do{
Push(S, N % 8); // "余数"入栈
N = N/8; // 非零"商"继续运算
} while (N) ;
while (!StackEmpty(S)) {
// 和"求余"所得相逆的顺序输出八进制的各位数
Pop(S,e);
printf("%d",e);
}
} // conversion
另外,虚机团上产品团购,超级便宜
相似回答