急! 求一个寻路算法(最好是A*), 高分!

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:26:33
要求:
输入参数:一个二维数组,指示地图上的阻挡(64*64)

20日晚22:40之前给出答案的追加100分!
还要分可以再加!
忘了说,用标准C++

#include<iostream.h>

#define ALL_R 10
#define ALL_C 10
#define Start_R 1
#define Start_C 1
#define End_R 8
#define End_C 8

typedef struct stack
{
int R;
int C;
int I;
struct stack *Next;
}Stack;

void Initial(Stack **S)
{
*S=NULL;
}
void Push(Stack **S,int cur_R,int cur_C)
{
//Stack *t=(Stack *)malloc(sizeof(Stack));
Stack *t=new Stack;
t->R=cur_R;
t->C=cur_C;
t->I=0;
t->Next=*S;
*S=t;
}
void Pop(Stack **S)
{
Stack *t=*S;
*S=(*S)->Next;
delete t;
}

void Finally(Stack **S)
{
while(*S!=NULL)Pop(S);
}

void NextPosition(Stack *S,int *cur_R,int *cur_C,int K)
{
switch(S->I)
{
case 0:
++(*cur_C);
break;
case 1:
++(*cur_R);
if(K)--(*cur_C);
break;
case 2:
if(K)