哈工大数据结构大作业 - 迷宫老鼠

}

}

printf(\,a[i][j]);

printf(\);

}//打印迷宫 return a;

struct node {

int val1; int val2; node *next;

};//针对迷宫的结构体类型储存横纵坐标 typedef struct node *STACK; void MakeNull(STACK &S) {

S = new node; S->next = NULL;

}//栈的初始化

void Push(int x,int y, STACK S) {

STACK stk; stk = new node; stk->val1 = x; stk->val2 = y; stk->next = S->next; S->next = stk;

}//压栈

void Pop(STACK S) {

STACK stk; if(S->next){ }

stk = S->next; S->next = stk->next; delete stk;

}//弹栈

int Top1(STACK S) {

if(S->next)

return(S->next->val1); return NULL; else

}//返回栈顶第一个元素 int Top2(STACK S)

{ }

int main(int argc, char* argv[]) {

int x, y, z; int i,j; int **w; float r; STACK Q, P; MakeNull(Q);

MakeNull(P);//两个栈的初始化 srand(time(NULL)); x=0;y=0;z=0;

printf(\); scanf_s(\,&x);

printf(\); scanf_s(\,&y); if(S->next)

return(S->next->val2); return NULL; else

printf(\); scanf_s(\,&r);

getchar();//用户输入迷宫的行数列数、通路障碍比例 w=maze(x,y,r); getchar();

int ii=1;int jj=1; while(ii!=x || jj!=y) {

if(w[ii-1][jj]*w[ii+1][jj]*w[ii][jj-1]*w[ii][jj+1]==0) {

z++;

if(0==w[ii+1][jj]) {

Push(ii,jj,Q);w[ii][jj]=2; ii++;

}//选择向下的方向 else if(0==w[ii][jj+1]) {

Push(ii,jj,Q);w[ii][jj]=2; jj++;

}//选择向右的方向 else if(0==w[ii][jj-1]) {

}

Push(ii,jj,Q);w[ii][jj]=2; jj--;

}//选择向左的方向 else {

<
>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)