数据结构之八皇后问题

用栈实现的八皇后问题

代码如下:

#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;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值