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

📄 ackermann.cpp

📁 常用算法与数据结构原代码
💻 CPP
字号:
#include <iostream.h>
#define MAX 200

typedef struct node{
	int n,x,y;
} NODE;

NODE stack[MAX];
int top=0;

int push(NODE s[],int &top,NODE x)
{
	if (top>=MAX)
		return 1;
	s[top]=x;
	top++;
	return 0;
}

int pop(NODE s[],int &top,NODE &x)
{
	if (top==0)
		return 1;
	top--;
	x=stack[top];
	return 0;
}

int A(NODE node)
{
	int B;
	NODE tnode;
	push(stack,top,node);
	do{
		tnode=stack[top-1];
		while (tnode.n!=0 && tnode.y!=0)
		{
			tnode.y--;
			push(stack,top,tnode);
		}
		pop(stack,top,tnode);
		switch (tnode.n)
		{
		case 0:B=tnode.x+1;
			break;
		case 1:B=tnode.x;
			break;
		case 2:B=0;
			break;
		case 3:B=1;
			break;
		default:B=2;
		}
		if (top)
		{
			pop(stack,top,tnode);
			tnode.n--;
			tnode.y=tnode.x;
			tnode.x=B;
			push(stack,top,tnode);
		}
	}
	while (top);
	return B;
}

void main()
{
	NODE node={3,2,5};
	cout<<"A(3,2,5)="<<A(node)<<endl;
}

⌨️ 快捷键说明

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