好久 没写博客了、下面 先总结一下 开学这一个月以来 写的几个数据结构小程序吧、、
小渣渣一枚、只为记录一下自己的学习历程、忘各位大神 海涵。
(一)30个小时、憋出来的——顺序栈实现 马踏棋盘
思路:
用栈来 写马踏棋盘、 也用到了点贪心算法, 都是 选择下一个位置 的8个方向上的可行路径数(方向索引权值)最小的走、因为一开始往可行路径少的点跳,则往后出口多的点就多,能跳通的可能性就大。然后 一但走进死胡同、那么 就得进行回溯。
回溯的思路就是:依次 将所有dir为8的元素弹栈、然后 将 可行路径第二代少的那个点 入栈。
然后 开始 继续循环跑......
好、下面第1步、我们来设置权值(将每一个位置的的可行路径数 放在二维数组weight[M][M]中):
<pre name="code" class="cpp">Position Getnext_Point(Position temp, int dir)
{
switch (dir)
{
case 0: temp.x+=1; temp.y-=2; break;
case 1: temp.x+=2; temp.y-=1; break;
case 2: temp.x+=2; temp.y+=1; break;
case 3: temp.x+=1; temp.y+=2; break;
case 4: temp.x-=1; temp.y+=2; break;
case 5: temp.x-=2; temp.y+=1; break;
c