//--------八皇后问题(栈)--------//Written by xhb
#include<stdio.h>
#include<malloc.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int Status;
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
Status InitStack(SqStack *S) //初始化
{
S->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!S->base)
{
printf("栈的初始化失败,请重新尝试初始化!\n");
return OVERFLOW;
}
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
return OK;
}
int GetTop(SqStack S) //获得栈顶元素
{
if(S.top==S.base)
{
printf("栈为空,无法获取栈顶元素!\n");
return ERROR;
}
printf("这有问题!");
return *(S.top-1); //返回栈顶元素,但原top指针并未改变
}
Status Push(SqStack *S,int e) //进栈
{
if(S->top-S->base>=S->stacksize)
{
S->base=(int *)realloc(S->base,
(S->stacksize+STACKINCREMENT)*sizeof(int));
if(!S->base)
{
printf("栈满,追加存储空间失败!\n");
return OVERFLOW;
}
S->top=S->base+S->stacksize;
S->stacksize+=STACKINCREMENT;
}
*S->top++=e;
return OK;
}
Status Pop(SqStack *S) //退栈
{
if(S->top==S->base)
{
printf("栈为空,无法删除栈顶元素!\n");
return ERROR;
}
S->top--;
return OK;
}
void main()
{
int i,j,e;
SqStack S[9];
enum boolean{false,true}; //注意顺序
enum boolean a[9],b[17],c[17]; //默认值为true
//int s[9];
for(i=1;i<=8;i++)
{
InitStack(&S[i]);
}
i=1,j=1;
a[j]=false;
b[i+j]=false;
c[i-j+9]=false;
Push(&S[i],j);
i=2;
while(i<=8)
{
while(j<=8)
{
if(a[j]&&b[i+j]&&c[i-j+9])
{
Push(&S[i],j);
a[j]=false;
b[i+j]=false;
c[i-j+9]=false;
j=1;
i++;
break;
}
else j++;
if(j==9)
{
i--;
e=GetTop(S[i])+1;
Pop(&S[i]);
Push(&S[i],e);
a[e]=false;
b[i+e]=false;
c[i-e+9]=false;
j=1;
i++;
}
}
}
for(i=1;i<=8;i++)
{
printf("第%d行,第%d列\n",i,GetTop(S[i]));
}
}
PandaXml
- 粉丝: 3
- 资源: 22
最新资源
- com.bishua666.luxxx1.apk
- Conan2示例工程以及mingw64编译工具链2
- exp4_2.c.sln
- [雷军]美妙的爱情......福的味道。.mp3
- 2023-04-06-项目笔记 - 第三百二十阶段 - 4.4.2.318全局变量的作用域-318 -2025.11.17
- 2023-04-06-项目笔记 - 第三百二十阶段 - 4.4.2.318全局变量的作用域-318 -2025.11.17
- java资源异步IO框架 Cindy
- java资源业务流程管理(BPM)和工作流系统 Activiti
- java资源高性能内存消息和事件驱动库 Chronicle
- 哋它亢技术应用2慕课自动化学习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页