• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            There is a will there is a way!

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              4 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

            這里的迷宮是由0 1表示的 0表示墻, 1表示能通過

            這里我用了const int row=7,column=13;你當然可以改動這個參數. 運行后回把其中的一條路徑改成其它數字
            你會看到的,

            #include? < iostream >
            #include?
            < stack >
            using ? namespace ?std;
            const ? int ?row? = ? 7 ;
            const ? int ?column? = ? 13 ;
            int ?table[row][column];
            // struct?position{
            ??
            // ??int?prow;
            ????
            // int?pcolumn;
            // };
            void ?settable()
            {
            ????
            ????cout
            << " Please?input?table[ " ;
            ????cout
            << row << " ][ " ;
            ????cout
            << column;
            ????cout
            << " ](using?0?or?1):\n " ;
            ????
            for ( int ?i = 0 ;i < row;i ++ )?
            ????????
            for ( int ?j = 0 ;j < column;j ++ )
            ????????????cin
            >> table[i][j];
            ????
            // cout<<"Input?1?go?on?and?0?end:\n";
            ????
            }

            int ?solvepass(stack < int > ? & P, int ?i, int ?j)
            {
            ????
            int ?count = 0 ;
            ???
            // ?int?count1=0;
            ???? while (i != row - 1 ? || ?j != column - 1 )
            ????
            {
            ????????count
            = 0 ;
            ???????
            // ?count1=0;
            ???????? if (i - 1 >= 0 ? && ?table[i - 1 ][j] == 1 )?
            ????????
            {
            ????????????count
            = 1 ;
            ????????????table[i][j]
            = 9 ;
            ????????????P.push(i);P.push(j);?
            // ?cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????i -= 1 ;? // cout<<"i="<<i<<"?j="<<j<<endl;
            ???????????? continue ;
            ????????}

            ????????
            if (i + 1 < row? && ?table[i + 1 ][j] == 1 )
            ????????
            {
            ????????????count
            = 1 ;
            ????????????table[i][j]
            = 9 ;
            ????????????P.push(i);P.push(j);
            // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????i += 1 ; // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????? continue ;
            ????????}
            ?
            ????????
            if (j - 1 >= 0 ? && ?table[i][j - 1 ] == 1 )
            ????????
            {
            ????????????count
            = 1 ;
            ????????????table[i][j]
            = 9 ;
            ????????????P.push(i);P.push(j);
            // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????j -= 1 ;? // cout<<"i="<<i<<"?j="<<j<<endl;
            ???????????? continue ;
            ????????}

            ????????
            if (j + 1 < column? && ?table[i][j + 1 ] == 1 )
            ????????
            {
            ????????????count
            = 1 ;
            ????????????table[i][j]
            = 9 ;
            ????????????P.push(i);P.push(j);
            // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????j += 1 ; // ?cout<<"i="<<i<<"?j="<<j<<endl;
            ???????????? continue ;
            ????????}

            ????????
            if (count == 0 )
            ????????
            {
            ????????????
            int ?n = P.top();
            ????????????P.pop();
            ????????????
            int ?m = P.top();
            ????????????P.pop();
            ????????????table[i][j]
            = 2 ; // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????????i = m;j = n; // cout<<"i="<<i<<"?j="<<j<<endl;
            ????????}

            ???????
            // ?else?return?1;
            ???????
            // ?count1=1;
            ????}

            ?????
            ?????P.push(row
            - 1 );P.push(column - 1 )?;
            ??????table[row
            - 1 ][column - 1 ] = 9 ;
            }

            void ?outputtable()
            {
            ????
            // cout<<"Result?table?is:\n";
            ???? for ( int ?i = 0 ;i < row;i ++ )
            ????
            {
            ????????cout
            << endl;
            ????????
            for ( int ?j = 0 ;j < column;j ++ )
            ????????????cout
            << table[i][j] << " ? " ;
            ????????}

            }

            void ?outputpass(stack < int >& P)
            {
            ????stack
            < int > ?S;
            ????cout
            << " \nThe?result?pass?is:\n " ;
            ????
            while ( ! P.empty())
            ????
            {
            ????????
            int ?sp = P.top();
            ????????P.pop();?
            ????????
            int ?q = P.top();??P.pop();
            ????????S.push(q);?S.push(sp);
            ????????
            ????}

            ????
            while ( ! S.empty())
            ????
            {
            ????????
            int ?j = S.top();
            ????????S.pop();
            ????????
            int ?i = S.top();
            ????????S.pop();
            ????????cout
            << " ( " << i << " , " << j << " )?\n " ;
            ????}

            }

            int ?main()
            {
            ????
            // int?row,column;
            ????
            // int?table[row][column];
            ????stack < int > ?P; // save?the?pass?ways
            ???? int ?s;
            ????cout
            << " Input?1?go?on?and?0?end:\n " ;
            ????
            while (cin >> s)
            ????
            {
            ????????
            if ( ! s)? break ;
            ????????settable();?
            // set?table
            ????????cout << " \nThe?orenage?table?is:\n " ;
            ????????outputtable();
            ????????solvepass(P,
            0 , 0 );? // solve?this?problem
            ????????cout << " \nThe?result?table?is:\n " ;
            ????????outputtable();
            ????????outputpass(P);
            ????????cout
            << " Input?1?go?on?and?0?end:\n " ;
            ????}

            ????
            return ? 1 ;
            }

            posted on 2006-04-10 23:21 王直元 閱讀(666) 評論(0)  編輯 收藏 引用
            日韩一区二区久久久久久| 亚洲中文字幕伊人久久无码| 99久久www免费人成精品 | 久久久久久夜精品精品免费啦| 久久不见久久见免费视频7| 国产成人无码精品久久久久免费| 91久久精品91久久性色| 久久人人爽人人澡人人高潮AV| 亚洲综合日韩久久成人AV| 国产成人AV综合久久| 精品国产青草久久久久福利| 久久精品成人免费国产片小草| 精品国产乱码久久久久软件| 久久乐国产精品亚洲综合| 久久精品一区二区| 日本人妻丰满熟妇久久久久久| 色综合合久久天天给综看| 四虎国产精品免费久久久| 久久久久亚洲AV无码专区体验| 亚洲国产成人久久一区WWW| 久久久久免费视频| 国内精品久久久久久久亚洲| 国产精品一区二区久久| 性做久久久久久久| 性欧美大战久久久久久久久 | 久久99久国产麻精品66| 亚洲AⅤ优女AV综合久久久| 久久亚洲高清综合| 久久国产视屏| 无码人妻少妇久久中文字幕 | 久久久久亚洲AV无码专区首JN| 久久99精品国产99久久6| 亚洲一区中文字幕久久| 精品久久久久久国产三级| 国产高潮国产高潮久久久91 | 久久久久18| 久久久久久久久久久免费精品| 国产—久久香蕉国产线看观看| 国产69精品久久久久99尤物| 久久国产精品-国产精品| 热久久这里只有精品|