calculate.h

来自「这个程序是用来实现管与矩阵加法的链表表示法。是用三元表法莱实现的!」· C头文件 代码 · 共 93 行

H
93
字号

typedef char DataTypeQ;
typedef float DataTypeS;

#define MaxQueueSize  100
#define MaxStackSize  100

#include"SeqStack.h"
#include"SeqQueue.h"

#include"stdio.h"
#include"windows.h"
#include"stdlib.h"

int Calculate( SeqQueue Q, float *f )
{
	SeqStack S;
	char m;
	float x,y;

	StackInitiate(&S);

	while(1)
	{
		if( 0 == QueueDelete( &Q, &m ) )
			break;
		else
		{
			switch(m)
			{
			case '+':
				{
					StackPop( &S, &x );
					StackPop( &S, &y );

					x = y + x;

					StackPush( &S, x );
					break;
					
				}
			case '-':
				{
					StackPop( &S, &x );
					StackPop( &S, &y );

					x = y - x;

					StackPush( &S, x );
					break;

				}
			case '*':
				{
					StackPop( &S, &x );
					StackPop( &S, &y );

					x = y * x;

					StackPush( &S, x );
					break;
				}
			case '/':
				{
					StackPop( &S, &x );
					StackPop( &S, &y );

					x = y / x;

					StackPush( &S, x );
					break;
				}
			default:
				{
					x = (float) atoi(&m);
					StackPush(&S, x);
				}

			}
		}
	}


	if( 0 == StackPop( &S, f ) )
	{
		printf("\n\nWrong when call the StackPop!\n");
		return 0;
	}

	return 1;
}

⌨️ 快捷键说明

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