全文预览

数据结构课程设计-敢死队问题

上传者:随心@流浪 |  格式:doc  |  页数:8 |  大小:74KB

文档介绍
士兵的编号依次进队Р for(i=1;i<start;i++) Р { Р j=serve(&s); Р append(&s,j); //这两句是把对头的元素取出来然后放到对尾去,经过这个循环以后,要从那个开始的士兵的编号就会在队的对头位置了Р } Р count=0; //删除结点数Р while(count<M-1) Р { Р for(i=1;i<5;i++) Р { Р j=serve(&s); Р append(&s,j); //这两句是把对头的元素取出来然后放到对尾Р } //经过这个循环以后,对头的那个节点的值就是数到5对应的节点Р j=serve(&s); //把这个节点出队,但是没有在把它放到对尾,就相当于把它删除了Р count++; Р } //同第一个方法是一样,删除点数为m-1是结束循环Р if(s.data[s.front]==1) break; //此时队只剩一个点,如果是排长就输出Р?} Р?cout<<"start from :"<<start<<endl; Р}Р调试结果Р系统界面Р算法分析Р本次采用循环队列的数据结构方法实现,但其先进先出的算法结构加大了本程序的时间及空间复杂度。Р总结Р这个方法是用循环队列来做的,实现的方法是这样的:首先从第一号开始报数,循环到指定的偏移位置其前面节点出对后插到队尾,该结点出对即删除,直至剩下一个结点。然后设计输出,令这个位置为队长位置,队首为开始报数的位置,并按此输出即为所求。Р体会与感受:Р在程序的编写中不能一味得向已有的程序进行模仿,而要自己去摸索,去寻求最好的解决方式,只有带着问题去反复进行实践,才能更熟练的掌握和运用,当然,对现有的程序也要多去接触,因为有些程序是我们无法在短时间内想出来的.最重要的一点就是要持之以恒,要经常性的复习原来所接触的程序,这样才能保证我们有足够的经验去面对程序问题。

收藏

分享

举报
下载此文档