- 博客(0)
- 资源 (31)
- 收藏
- 关注
3合1雅克比迭代 广度优先 深度优先 四则运算 C程序
#include <malloc.h>
#include <process.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 10
#define STACK_INCREMENT 2
typedef struct SqStack//定义栈的结构
{
float *base;
float *top;
int stacksize; }SqStack;
void InitStack(SqStack &S)
{ //构造一个空栈s
if( !( S.base = ( float* ) malloc ( STACK_INIT_SIZE * sizeof( float) ) ) )
exit( 0 );
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
}
int StackEmpty( SqStack S )
{
if( S.top == S.base )
return 1;
else
return 0;
}
int GetTop( SqStack S, float &e )
{
if( S.top > S.base )
{ e = *( S.top - 1 );
return 1;}
else
return 0;
}
void Push( SqStack &S, float e )
{ //入栈
if( S.top - S.base >= S.stacksize )
{
S.base = ( float* ) realloc ( S.base, ( S.stacksize + STACK_INCREMENT ) * sizeof( float) );
if( !S.base )
printf("存储空间分配失败");
exit( OVERFLOW );
S.top = S.base + S.stacksize;
S.stacksize += STACK_INCREMENT;
}
*( S.top )++ = e;
}
int Pop( SqStack &S, float &e )
{ //出栈
if( S.top == S.base )
return 0;
else e = *--S.top;
return 1;
}
int campare(char t1,char t2)
{
int f;
switch( t2 )
{
case '+':
case '-':
if( t1 == '('|| t1=='=' )
f = '<';
else
f = '>';
break;
case '*':
case '/':
2019-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人