那么今天的任务就是实现自定义模式的计算步数,以及晦步
这个就是要用到栈的共呢个,就是把每走的一步存进栈中,然后在这个过程中,每走一步,步数加一,每一栈存的是如何到达上一步,比如我上一个位置是上面,那么存的数据则是(-1,0),则晦步的时候,就将这个数据弹出来,就实现了晦步
typedef struct znode
{
int step;
int x;
int y;
struct znode* next;
}znode,*zlink;
zlink s;
int initzlink()
{
s = (zlink)malloc(sizeof(znode));
if (s == NULL)return FAULT;
s->next = NULL;
return OK;
}
void enzlink(int sx, int sy)
{
zlink p;
p = (zlink)malloc(sizeof(znode));
if (s->next == NULL) {
p->step = 1;
}
else {
p->step = s->next->step + 1;
}
p->x = sx;
p->y = sy;
p->next = s->next;
s->next = p;
}
int dezlink(int& sx, int& sy,int &sstep)
{
if (s->next == NULL)return FAULT;
sx = s->next->x;
sy = s->next->y;
sstep = s->next->step;
zlink p = s->next;
s->next = p->next;
free(p);
return OK;
}
今晚上再把整个程序优化一下吧,排行榜应该是做不了了