搜索
您的当前位置:首页正文

数据结构之八皇后问题

来源:步旅网

用栈实现的八皇后问题

代码如下:

#include "stdio.h"
#include "stdlib.h"
#include "math.h"

#define _size 100 //栈的大小
#define len 8
/*
	* 八皇后问题
	* 对于两点(x1,y1),(x2,y2)
	* 不能同行 x1 != x2
	* 不能同列 y1 != y2
	* 不能在对角线上 斜率的绝对值 |k| != 1 |x1 - x2| != |y1 - y2| 
*/

typedef struct{
	int x;
	int y;
}*point,_point;

typedef struct{
	point *base;
	point *top;
	int size;
}*stack,_stack;


int place(_stack st,int x,int y);
void InitStack(stack *S);
void push(stack st,point p);
point pop(stack st);
int length(stack st);
int isEmpty(stack st);
point getPoint(int i,int j);

void InitStack(stack *S){
	(*S) = (stack)malloc(sizeof(_stack));                           
	(*S)->base = (point*) malloc ( _size*sizeof(_point) );
	(*S)->top = (*S)->base;
	(*S)->size = _size;
}

void push(stack st,point p){
	st->top++;
	*st->top = p;
}

point pop(stack st){
	point p = *st->top;
	

因篇幅问题不能全部显示,请点此查看更多更全内容

Top