• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              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 王直元 閱讀(649) 評論(0)  編輯 收藏 引用
            久久久国产99久久国产一| 91久久精品国产91性色也| 久久精品中文字幕大胸| 伊人久久大香线蕉av一区| 九九精品99久久久香蕉| 一本大道久久a久久精品综合| 精品久久久久久久中文字幕| 久久久久久精品免费免费自慰| 97久久超碰国产精品旧版| 久久久艹| 伊人久久大香线蕉影院95| 日韩精品久久无码人妻中文字幕| 欧美777精品久久久久网| 久久国产欧美日韩精品免费| 成人国内精品久久久久影院| 久久亚洲电影| 国产一区二区三区久久| 久久久久人妻一区二区三区| 久久人人超碰精品CAOPOREN| 97超级碰碰碰久久久久| 2021久久精品免费观看| 国产A级毛片久久久精品毛片| 男女久久久国产一区二区三区| 久久国产午夜精品一区二区三区| 99久久做夜夜爱天天做精品| 国产香蕉97碰碰久久人人| 东京热TOKYO综合久久精品| 人妻精品久久久久中文字幕69| 午夜精品久久久久9999高清| 久久精品亚洲福利| 久久e热在这里只有国产中文精品99| 色成年激情久久综合| 久久99免费视频| 国产成人AV综合久久| 狠狠色伊人久久精品综合网| 麻豆精品久久精品色综合| 人人狠狠综合久久亚洲88| 久久香蕉综合色一综合色88| 精品久久久无码中文字幕| 亚洲国产天堂久久久久久| 久久久这里有精品|