当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

高分求:迷宫问题数据结构C语言

更新:01-02 整理:39baobao.com
字体:

[C语言数据结构与算法分析C语言描述]Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...+阅读

这个迷宫的路径不是唯一的,因此从不同方向开始试探执行结果也可能会不唯一。我写的是参考书上的,共有八个方向可以试探。 栈解决迷宫主要的几个问题: 1.迷宫的存储 2.栈的设计 3.试探方向 4.不重复到达某点,即不陷入死循环 如果对算法有什么疑问,或是我的回答有错误的地方,可以Hi我。 #define LINES 9 // 定义行数 #define COLS 8 // 定义列数 #include#include#includetypedef struct{ int line; int col; }MOVE; // 定义试探方向的结构体 MOVE to[8] = {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}}; // 定义数组,存放8个试探方向 typedef struct{ // 行、列、方向构成的三元组 int x; int y; int d; }DataType; typedef struct node{ DataType element; struct node * next; }StackNode,*LinkStack; LinkStack InitStack(LinkStack s); // 栈初始化 LinkStack PushStack(LinkStack,DataType *); // 入栈函数 LinkStack PopStack(LinkStack,DataType *); // 出栈函数 int EmptyStack(LinkStack s); // 判定栈空 int path(int maze[][COLS+2]); // 打印路径 void printpath(LinkStack s,DataType * t); int main( void ) { int i,j; int maze[LINES+2][COLS+2] = // 定义存放迷宫的数组并初始化 {1,1,1,1,1,1,1,1,1,1, 1,0,0,1,0,0,0,1,0,1, 1,0,0,1,0,0,0,1,0,1, 1,0,0,0,0,1,1,0,1,1, 1,0,1,1,1,0,0,1,0,1, 1,0,0,0,1,0,0,0,0,1, 1,0,1,0,0,0,1,0,1,1, 1,0,1,1,1,1,0,0,1,1, 1,1,1,0,0,0,1,0,1,1, 1,1,1,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1 }; for(i=1;ielement = *t; p->next = s; s = p; return s; } LinkStack PopStack(LinkStack s,DataType *t) { StackNode * p = NULL; if( EmptyStack(s) ){ printf("栈空\n"); return NULL; } p = s; *t = p->element; s = s->next; free(p); p = NULL; return s; } int EmptyStack(LinkStack s) { if( NULL == s ){ return 1; } return 0; } int path(int maze[][COLS+2]) { int i,j,x1,y1,v; DataType temp; LinkStack top; temp.x = 1; temp.y = 1; temp.d = -1; top = InitStack(top); top = PushStack(top,&temp); while( !EmptyStack(top) ) { top = PopStack(top,&temp); // 入口为(1,1),从0方向开始试探 x1 = temp.x; y1 = temp.y; v = temp.d + 1; while( velement.x,s->element.y,s->element.d); s = PopStack(s,t); } }

本文地址:https://www.39baobao.com/show/29_20944.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

电影赏析论文2000字左右最好是自己写的谢谢高分求助电影《乱世佳人》赏析: 《GONE WITH THE WIND》在中国的翻译有两个版本:《乱世佳人》和《飘》。我比较喜欢后者,正如电影开始时打出了一行字幕:A civilization has gone with th...

c语言数据结构赋值问题你是传值,不是传址。如下修改,能正确得到理想结果: #include<stdio.h> #include<stdlib.h> //void initstack(struct snode*); struct snode { int data[10]; int top; }; main...

事业单位学校面试考试中怎样才能在说课试讲中得高分应聘教师要看自己的专业,我是一名大学教师,刚经历过面试所以还是有些经验的。 首先就是要在试讲前做好充足的准备,把要讲的内容的相关背景等知识了解到位,并把课的内容和这些背...

幼儿园升国旗演讲稿高分100尊敬的校领导、老师、亲爱的同学们: 你们好! 当五星红旗再次升起在我们面前,嘹亮的国歌声回响在我们耳畔,阳光又一次洒进菁菁校园,我们又迎来了一个新的学期,一个新的开始,一个播种...

论文征集悬赏高分和很多刚到大学校园的新生一样,我以为大学的学习是和高中一样的,有班主任,有任课老师,有生活老师,只是学超不过十门的功课,每门课学四年...... 殊不知,大学里的班主任几百年见不到...

C||C语言高分求高效的矩阵相乘程序不用考虑了,你的程序差太多,能达到CPU峰值的十分之一就不错了。 如果只要求高速,去找一个比较好的BLAS库调用一下就可以,比如ATLAS、GOTOBLAS、MKL、ACML、IMCL(前两个免费)。 如...

托福考试心得听力考试如何拿高分听力的备考要培养自己长时间集中注意力的能力,不然即使不遇到听力加试,正常的听力段子都很难坚持下来,不疏忽。这种能力的培养只能通过每天长时间听听力来锻炼。每天听听力的时...

数据结构算法c语言迷宫求解注释非常详细,希望对你有所帮助。#include#include#define M 15 #define N 15 struct mark //定义迷宫内点的坐标类型 { int x; int y; }; struct Element //"恋"栈元素,嘿嘿。...

C语言写的迷宫遍历问题没学数据结构写的算法是how to program#include#define X_start 2#define Y_start 0//换了个顺序 #define up 0#define down 2#define right 1#define left 3void mazeTraverse(char maze[][12],int x_start,int...