多段图 八皇后作业.docx

上传人:公**** 文档编号:562625696 上传时间:2024-01-21 格式:DOCX 页数:4 大小:91.36KB
返回 下载 相关 举报
多段图 八皇后作业.docx_第1页
第1页 / 共4页
多段图 八皇后作业.docx_第2页
第2页 / 共4页
多段图 八皇后作业.docx_第3页
第3页 / 共4页
多段图 八皇后作业.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《多段图 八皇后作业.docx》由会员分享,可在线阅读,更多相关《多段图 八皇后作业.docx(4页珍藏版)》请在金锄头文库上搜索。

1、算法作业 李同立 20114651、 多段图向前处理法:首先对书上5段图用邻接表建立,从文件中读入图建立,主要程序如下:void CreatGraph(Graph *G) /建立有向图fscanf(fp,%d %d,&G-vexnum,&G-arcnum); /从文件中读取顶点数和边数for(i=1;ivexnum;i+) fscanf(fp,%c,&G-verticesi.data); /从文件中读取顶点名称G-verticesi.firstarc=NULL; /将第一条邻接边的地址赋为空for(i=1;iadjvex,&p-weigh); p-nextarc=G-verticesj.fir

2、starc; /使用插表头的方法插入邻接边G-verticesj.firstarc=p;首先对最后一个节点复制,然后从倒数第二个节点到第一个结点,分别求出其后面的所有的节点到终点的值加上本节点到下一个节点的距离,然后返回值最小的那个节点,即r.具体代码如下:void main() /向后处理法cost12=0;for(j=11;j=1;j-)p=G-verticesj.firstarc;min=p-weigh+costp-adjvex;costj=min;dj=p-adjvex;while (p-nextarc!=null)b=p-nextarc-weigh+costp-nextarc-adj

3、vex;if(bnextarc-adjvex;p=p-nextarc;程序算法执行结果如下详细代码见附件FGRAPH.jar 2、 八皇后问题:首先是判断这个位置是否可以放置这个皇后,如果可以,则返回1,否则返回0.具体代码如下:int Place(int k)/判断能否放置一个新皇后int i=1;while(i0)xk+;while (xk=n)&(!Place(k)xk+;if(xk=n)if(k=n) for(i=1;i=n;i+)if(num%8=0) printf(第%-2d组解: ,num/8+1);printf(%d ,xi);num+;printf(n);else k+;xk=0;else k-;总共92组解:程序运行结果如下:代码详见附件8queens.jar

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号