#include<stdio.h>
#include<stdlib.h>
#define stack_size 100
#define n 8
int a[n][n];
int sort[n][n][8];
int i, j, k,h,l;
struct seat
{
int x, y;//坐标
int direct;
};
struct stack
{
struct seat *top, *base;
};
struct stack s;
int initstack()
{
s.base=(struct seat*)malloc( stack_size*sizeof(struct seat) );
if( !s.base )
return 0;
s.top=s.base;
return 1;
}
void push(struct seat elem)
{
*s.top++=elem;
}
int pop()
{
if(s.top==s.base)
return 0;
s.top--;
return 1;
}
struct seat gettop()
{
if(s.top==s.base)
exit(0);
return *(s.top-1);
}
int empty()
{
if(s.top==s.base)
return 0;
return 1;
}
int pass(struct seat point)
{
struct seat *head=s.top;
if(point.x<0 || point.x>n-1 || point.y<0 || point.y>n-1)
{
return 0;
}
while(head != s.base)
{
head--;
if(point.x==head->x && point.y==head->y)
return 0;
}
return
C语言:马踏棋盘,改编自《数据结构与算法》.
这篇博客详细介绍了如何使用C语言解决马踏棋盘问题。通过定义数据结构、初始化栈、设置行走权重和方向等功能,实现了马的路径搜索,并以贪心策略指导马的移动。最终,程序输出了马的完整行走路径。
摘要由CSDN通过智能技术生成