1 / 26
文档名称:

实验报告(华容道).docx

格式:docx   大小:50KB   页数:26页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验报告(华容道).docx

上传人:bai1968104 2020/8/26 文件大小:50 KB

下载得到文件列表

实验报告(华容道).docx

文档介绍

文档介绍:数据结构(华容道)实验报告实验名称:华容道学生姓名:班级:学号:日期:一、实验目的可以输入华容道游戏的起始布局,求出求解结果。二、,一般都是通过搜索空间的方法获得可行解法。这里采用广度优先搜索。理论上讲,广度优先算法得到的第一个解,一定是一个搜索步数最少的解(如有解存在),这正好是华容道游戏的需要。广度优先搜索算法一般通过队列存储结构实现。由当前布局状态判断哪些棋子可以移动,每移动一个棋子,得到一个新的布局状态,若不是最终解且该布局以前没有出现过,则入队。显然算法在设计细节时需要考虑移动棋子的算法,以及如何判断新的布局状态是否出现过。:MemoryPool::MemoryPool(unsignedintsize){ if(size<=100)throw"sizeshouldbegreaterthan100."; m_Base=newchar[size]; if(!m_Base)throw"noenoughmemory."; m_PoolSize=size; m_Frist=NULL; InsertFreeBlock(m_Base,size-2*sizeof(BlockBorder));}voidMemoryPool::InsertFreeBlock(void*p,intsize){ FreeBlockHead*s=(FreeBlockHead*)p; s->BlockLength=size; p=(char*)p+size+sizeof(BlockBorder); ((BlockBorder*)p)->BlockLength=size; if(m_Frist)m_Frist->prior=s; s->next=m_Frist; s->prior=NULL; m_Frist=s;}voidMemoryPool::DeleteFreeBlock(FreeBlockHead*p){ if(!p->next&&!p->prior) { m_Frist=NULL; } elseif(!p->next&&p->prior) { p->prior->next=NULL; } elseif(!p->prior) { p->next->prior=NULL; m_Frist=p->next; } else { p->next->prior=p->prior; p->prior->next=p->next; }}voidMemoryPool::SetUsedBorder(void*p,intsize){ ((BlockBorder*)p)->BlockLength=-size; p=(char*)p+sizeof(BlockBorder)+size; ((BlockBorder*)p)->BlockLength=-size;}void*MemoryPool::Allocate(intsize){ if(m_Frist==NULL)returnNULL; FreeBlockHead*p=m_Frist; while(p&&p->MemorySize()<size)p=p->next; if(!p)returnNULL; if(p->MemorySize()<=size+sizeof(FreeBlockHead)+sizeof(BlockBorder)) { DeleteFreeBlock(p); SetUsedBorder(p,p->BlockLength); return(char*)p+sizeof(BlockBorder); } else { intnewsize=p->MemorySize()-size-2*sizeof(BlockBorder); DeleteFreeBlock(p); InsertFreeBlock(p,newsize); SetUsedBorder((char*)p+p->BlockSize(),size); return(char*)p+p->BlockSize()+sizeof(BlockBorder); }}BlockBorder*MemoryPool::GetCurrentBlock(void*p){ return(BlockBorder*)((char*)p-sizeof(BlockBorder));}BlockBorder*MemoryPool::GetPreBlock(void*p){ char*cp=(char*)GetCurrentBlock(p); if(cp==m_Base)returnNULL; else { intlen=*(int*)(cp-sizeof(BlockBorder)); cp-=2*siz

最近更新

北京五路居第一中学2020年高三数学理期末试题.. 7页

北京关东店中学2021年高一物理上学期期末试题.. 4页

北京南召中学高二化学测试题含解析 5页

北京大辛庄中学高一物理测试题含解析 4页

北京密云县北庄中学2021-2022学年高一语文联考.. 8页

北京密云县第六中学高三物理期末试卷含解析 7页

北京师范大学第二附属中学 2020-2021学年高二.. 6页

北京延庆县赵庄中学高一历史下学期期末试卷含.. 9页

北京木樨园中学高三数学理月考试卷含解析 6页

北京矿院附属中学2020-2021学年高二数学文上学.. 7页

2025年新入职转正自我鉴定 16页

北京第一七一中学高二历史上学期期末试卷含解.. 9页

北京第一六五中学高三化学月考试卷含解析 6页

北京第三十七中学电子技术职业高级中学高三生.. 11页

北京第六十六中学2020年高二数学文下学期期末.. 6页

北京第四职业中学 2022年高三化学模拟试卷含.. 6页

北京育才实验学校高二英语期末试卷含解析 4页

北京通州区第二中学2022年高二数学文期末试题.. 14页

北京门头沟区雁翅中学2020年高三数学文期末试.. 8页

采棉机驾驶员职业技能鉴定与劳动合同 3页

中国急性期缺血性脑卒中诊治指南2025 12页

焦虑自评量表SAS完整 6页

风力发电施工安全培训课件 35页

升压站调试方案 11页

ASTMD6595旋转盘电极原子发射光谱法测金属中文.. 7页

11g363构造柱图集 1页

全自动化学发光免疫分析仪Immulite标准操作规.. 57页

佛子行快乐之歌供灯饶塔功德思考题答案 15页

2016年娄底市党政领导考试资料复习 12页