利用《数据结构》课程知识完成C语言程序设计“N皇后问题”(堆栈,一维数组,普通算法都可以,用C语言写

利用《数据结构》课程知识完成C语言程序设计“N皇后问题”(堆栈,一维数组,普通算法都可以,用C语言写,第1张

#include <stdioh>//N皇后问题

#include <

stdlibh

>

#include <stdioh>

#include <

iostreamh

>

#include <

timeh

>

#include <dosh>

#include<malloch>

typedef struct {

int elem;

int length;

int listsize;

}Sqlist;

int InitList(Sqlist & L){//初始化

Lelem=(int )malloc(100sizeof(int));

if(!Lelem)

return 0;

Llength=0;

Llistsize=100;

return 1;

}

int Insert(Sqlist & L,int e){//插入

int m=0,i=0; 

int p=&Lelem[0],j=&Lelem[0];

if(Llength==0)

{ p=e; Llength++;return 1;}

for(i;i<Llength;i++)

if(e>=(p+i))

m=i+1;

for(i=Llength;i>m;i--)

(j+i)=(j+i-1);

Lelem[m]=e;

Llength++;

return 1;

}

void Print(Sqlist &L,int n){//

遍历

打印输出

int k=1,i=0; intp=&Lelem[0];

for(i=0;i<nn;i++,k++){

printf("%d ",(p+i));

if(k==n){k=0;printf("\n");}}

printf("\n\n\n\n\n\n\n");

}

int ReturnK(Sqlist &L,int k){//返回第K个元素的值

intp=&Lelem[0];

return (p+k-1); 

}

void FuK(Sqlist &L,int k,int e){//将第k个元素赋值为e

int p=&Lelem[0];

(p+k-1)=e;

}

int TiaoJian(Sqlist L,int n,int &e){//是否满足皇后问题判断

int b[100];

int m=0,h=2n;

for(int k=0;k<2n;k++) b[k]=0; 

for(int i=1;i<=nn;i++)

if(ReturnK(L,i)==1)

{b[m]=(i-1)/n+1;m++;b[m]=i-(b[m-1]-1)n;m++;}

for(int c=0;c<2n;c++)

if(b[c]==0) {h=c;break;} 

for( c=0;c<h-2;c=c+2)

for(int d=c+2;d<h;d=d+2)

if(b[c]==b[d]||b[c+1]==b[d+1]||b[d+1]-b[c+1]==b[d]-b[c]||b[d+1]-b[c+1]==b[c]-b[d])

return 0;

if(h==2n){

printf("\n\n%d皇后问题第%d个排列!\n\n",n,e);e++;

}

return 1; 

}

void Trial(Sqlist &L,int i,int n,int &e){//皇后问题

int j;

if(i>n){Print(L,n);}

else for(j=1;j<=n;j++){

FuK(L,ni-n+j,1);

if(TiaoJian(L,n,e)==1)

Trial(L,i+1,n,e);

FuK(L,ni-n+j,0);

}

}

void main(){

int k,i=0; 

printf("\n\n请输入要n皇后问题个数:\n");

scanf("%d",&k);

time_t rawtime;

struct tm

 timeinfo;

time ( &rawtime );

timeinfo = localtime ( &rawtime );

Sqlist L1;

InitList(L1); 

for(i=0;i<kk;i++)

Insert(L1,0);

int e=1;

Trial(L1,1,k,e);

printf ( "The current date/time is: %s", asctime (timeinfo) );

time ( &rawtime );

timeinfo = localtime ( &rawtime );

printf ( "The current date/time is: %s", asctime (timeinfo) );

printf("哈哈哈哈\(^o^)/~\n");

system("pause");

}

数据结构是计算机学科一个重要组成部分,但是数据结构不依赖某种特定的语言。不过只要你要编程,就不能离开数据结构,如果你语言学的不好,那么是无法实现相应的数据结构的算法的。建议你好好巩固一下程序设计语言,这样再学数据结构的时候不至于太痛苦。

数据结构讲述计算机中数据的组织方式,如线性表、链表、二叉树等,这些学校通常讲述算法的思路多谢,上机实现的部分少些。但是如果你程序设计语言不过关的话,以后计算机专业课程的学习将会痛苦万分,如果你是一个对计算机编程感兴趣的人,我希望你能好好看待学习计算机知识这样一个难得机会,如果你不喜欢的话,就当我没说。

您好,我来为您解答:

不太好考。858C语言程序设计与数据结构考研真题是东北大学研究生入学考试858C语言程序设计与数据结构考过的真题试卷,对于报考东北大学软件工程专业的考生来说,858C语言程序设计与数据结构考研真题对于考研专业课的复习是非常重要的,因为858C语言程序设计与数据结构考研真题除了能告诉我们哪些知识点最重要,

希望我的回答对你有帮助。

以上就是关于利用《数据结构》课程知识完成C语言程序设计“N皇后问题”(堆栈,一维数组,普通算法都可以,用C语言写全部的内容,包括:利用《数据结构》课程知识完成C语言程序设计“N皇后问题”(堆栈,一维数组,普通算法都可以,用C语言写、学习数据结构是不是和学过的C语言程序设计很有关联、858c语言程序设计与数据结构好考么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9436459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存