算法数据结构总结

算法数据结构总结

ID:14693261

大小:64.50 KB

页数:7页

时间:2018-07-30

算法数据结构总结_第1页
算法数据结构总结_第2页
算法数据结构总结_第3页
算法数据结构总结_第4页
算法数据结构总结_第5页
资源描述:

《算法数据结构总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、**大学算法与数据结构课程设计课程:算法与数据结构专业:计算机科学与技术班级:08级计算机2班学号:08060102**姓名:**2010年11月18日本次算法与数据结构实践课中我们小组主要选择了两个课题,一个是迷宫的创建及求解问题,另一个是停车场管理系统问题,还选做了一个敢死队的问题。在迷宫创建及求解这个问题中,我主要负责的是求解迷宫这个模块。迷宫求解采用的是课本中的回溯法,其求解过程就是沿着一个方向进行探索,若能走通,则继续向前走;否则原路返回,换一个方向在进行探索,直到找到了出口,或者所有可能的探索都失败而告终。在探索过程中,可以用一个栈来保存探索的序列。其算法框架如下:创建一个(保

2、存探索过程的)空栈:把入口位置压入栈中:While栈不空时{取栈顶位置并设置为当前位置;While当前位置存在试探可能{取下一个试探位置;If(下一个位置是出口)打印栈中保存的探索过程然后返回If(下一个位置是通道)把下一个位置进栈并且设置为当前位置;}}这个模块在程序中对应的代码段是:StatusInitStack(Stack*s)/*创建栈s并初始化为空栈*/{s->base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));/*分配内存空间*/if(!s->base)Error("Overflow");s->top=s->ba

3、se;s->stacksize=STACK_INIT_SIZE;returnOK;}StatusDestroyStack(Stack*s)/*销毁栈*/{s->top=NULL;s->stacksize=0;free(s->base);s->base=NULL;returnOK;}BooleanStackEmpty(Stack*s)/*核对栈是否为空栈*/{if(s->top==s->base)returnTRUE;elsereturnFALSE;}intStackLength(Stack*s)/*得到栈的长度*/{if(s->top>s->base)return(int)(s->top-

4、s->base);elsereturn0;}StatusPush(Stack*s,SElemTypee)/*入栈*/{if(s->top-s->base>=s->stacksize){s->base=(SElemType*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(SElemType));if(!s->base)Error("Overflow");s->top=s->base+s->stacksize;s->stacksize+=STACKINCREMENT;}*s->top++=e;returnOK;}SElemTypePo

5、p(Stack*s,SElemTypee)/*出栈*/{if(s->top==s->base)Error("Pop");e=*--s->top;returne;}StatusGetTop(Stack*s,SElemType*e)/*e置到栈顶*/{if(s->top==s->base)Error("GetTop");*e=*(s->top-1);returnOK;}BooleanPass(PosTypecurpos)/*检测目前位置是否可通*/{if(maze[curpos.x][curpos.y].td==1&&maze[curpos.x][curpos.y].foot==0&&maze

6、[curpos.x][curpos.y].mark==0)returnTRUE;elsereturnFALSE;}voidMarkPrint(PosTypeseat)/*标记位置*/{maze[seat.x][seat.y].mark=-1;}voidFootPrint(PosTypecurpos){maze[curpos.x][curpos.y].foot=1;}PosTypeNextPos(PosTypeseat,intdi){switch(di){case1:seat.y++;returnseat;/*下方向*/case2:seat.x++;returnseat;/*右方向*/cas

7、e3:seat.y--;returnseat;/*上方向*/case4:seat.x--;returnseat;/*左方向*/default:seat.x=0;seat.y=0;returnseat;}}在停车场管理系统这个问题中我主要负责的模块是停车场及便道里面车辆信息显示这个模块。这个模块分为一个大模块,两个子模块。其中大模块是显示列表的选择选项的模块,会调用两个子模块。两个子模块的功能分别是显示停车场里面的车辆的信

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。