• <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>

            The Fourth Dimension Space

            枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            #

            Complex Class (Beta 2.0)

                 摘要: #include<iostream>#include<cmath>using namespace std;//本模板在VS2005下可正常運行/**//*//////////////////////////////BEGIN_TEMPLATE_CALSS_COMPLEX_BY_ABILITYTAO////////////////////////////*...  閱讀全文

            posted @ 2009-05-29 21:37 abilitytao 閱讀(1244) | 評論 (5)編輯 收藏

            復數(shù)類(Comlex Class)

                 摘要: #include<iostream>#include<cmath>using namespace std;/**//////////////////////////////Complex Class///////////////////////////////////////class Complex{private: &n...  閱讀全文

            posted @ 2009-05-29 20:46 abilitytao 閱讀(1887) | 評論 (3)編輯 收藏

            排序二叉樹BST(beta 2.0)

                 摘要: #include <iostream>#include<algorithm>#include<cmath>using namespace std;/**//////////////////////BEGIN_TEMPLATE_BALANCE_SORT_TREE_BY_ABILITYTAO_ACM///////////////////...  閱讀全文

            posted @ 2009-05-24 15:36 abilitytao 閱讀(1239) | 評論 (0)編輯 收藏

            排序二叉樹模板類(Beta 1.0)

                 摘要: #include <iostream>#include<algorithm>#include<cmath>using namespace std;/**//////////////////////BEGIN_TEMPLATE_BALANCE_SORT_TREE_BY_ABILITYTAO_ACM///////////////////...  閱讀全文

            posted @ 2009-05-24 15:08 abilitytao 閱讀(1232) | 評論 (0)編輯 收藏

            排序二叉樹模板(轉)

            #include<iostream>
            #include<cassert>
            using namespace std;


            /**////////////////////////A_CLASS_TEMPLATE_FOR_BST//////////////////////////////
            template< class NODETYPE > class Tree;

            template< class NODETYPE >
            class TreeNode
            {
                friend class Tree< NODETYPE >;
            public:
                TreeNode( const NODETYPE &d ):leftPtr( 0 ), data( d ), rightPtr( 0 ){ }
                NODETYPE getData() const 
                {
                    return data; 
                }
            private:
                TreeNode< NODETYPE > *leftPtr;
                NODETYPE data;
                TreeNode< NODETYPE > *rightPtr;
            };



            template< class NODETYPE >
            class Tree{
            public:
               Tree();
               void insertNode( const NODETYPE & );
               void preOrderTraversal() const;
               void inOrderTraversal() const;
               void postOrderTraversal() const;
            private:
               TreeNode< NODETYPE > *rootPtr;

               void insertNodeHelper(
                TreeNode< NODETYPE > **, const NODETYPE & );
               void preOrderHelper( TreeNode< NODETYPE > * ) const;
               void inOrderHelper( TreeNode< NODETYPE > * ) const;
               void postOrderHelper( TreeNode< NODETYPE > * ) const;
            };

            template< class NODETYPE >
            Tree< NODETYPE >::Tree() { rootPtr = 0; }

            template< class NODETYPE >
            void Tree< NODETYPE >::insertNode( const NODETYPE &value )
            {
            insertNodeHelper( &rootPtr, value );
            }

            template< class NODETYPE >
            void Tree< NODETYPE >::insertNodeHelper(TreeNode< NODETYPE > **ptr, const NODETYPE &value )
            {
                if( *ptr == 0 )
                {
                   *ptr = new TreeNode< NODETYPE >( value );
                   assert( *ptr != 0 );
                }
            else
               if( value < ( *ptr )->data )
                   insertNodeHelper( &( ( *ptr )->leftPtr ), value );
               else
                   if( value > ( *ptr )->data )
                       insertNodeHelper( &( ( *ptr )->rightPtr ), value );
               else
                 cout<< value << " dup" << endl;


            template< class NODETYPE >
            void Tree< NODETYPE >::preOrderTraversal() const
            {
                preOrderHelper( rootPtr ); 
            }

            template< class NODETYPE >
            void Tree< NODETYPE >::preOrderHelper(TreeNode< NODETYPE > *ptr ) const
            {
                if( ptr != 0 )
                {
                   cout<< ptr->data << ' ';
                   preOrderHelper( ptr->leftPtr );
                   preOrderHelper( ptr->rightPtr );
                }
            }

            template< class NODETYPE >
            void Tree< NODETYPE >::inOrderTraversal() const

                inOrderHelper( rootPtr );
            }

            template< class NODETYPE >
            void Tree< NODETYPE >::inOrderHelper( TreeNode< NODETYPE > *ptr ) const
            {
            if( ptr != 0 )
                {
                   inOrderHelper( ptr->leftPtr );
                   cout<< ptr->data << ' ';
                   inOrderHelper( ptr->rightPtr );
                }
            }

            template< class NODETYPE >
            void Tree<NODETYPE >::postOrderTraversal() const
            {
                postOrderHelper( rootPtr );
            }

            template< class NODETYPE >
            void Tree< NODETYPE >::postOrderHelper(    TreeNode< NODETYPE > *ptr ) const
            {
                if( ptr != 0 )
                {
                   postOrderHelper( ptr->leftPtr );
                   postOrderHelper( ptr->rightPtr );
                   cout<< ptr->data << ' ';  
                }
            }
            /**///////////////////////////////END_TEMPLATE/////////////////////////////////

            int main()
            {
                Tree< int > intTree;
                int intVal;
                
                cout<< "Enter 10 integer values:\n";
                for( int i = 0; i < 10; i++ )
                {
                    cin>> intVal;
                    intTree.insertNode( intVal );
                }
                
                cout<< "\nPreorder traversal\n";
                intTree.preOrderTraversal();
                
                cout<< "\nInorder traversal\n";
                intTree.inOrderTraversal();
                
                cout<< "\nPostorder traversal\n";
                intTree.postOrderTraversal();
                
                return 0;
            }

            網(wǎng)上看到的模板,感覺寫得很不錯,呵呵。不過排序二叉樹本來是用來查找的,沒有查找函數(shù)真是可惜了丫,等下次有時間我來加個查找刪除函數(shù),這個模板就可以真正的使用了。


            PS:其實學完數(shù)據(jù)結構以后我自己也寫了一個排序二叉樹的模板,可惜的是,由于新建結點里面有指針,似乎無法用上模板類了,今天看了這個模板才恍然大悟,原來可以寫一個結點類,呵呵;我還有一個地方不太明白,就是friend class Tree< NODETYPE >;這條語句里面用到了friend關鍵字,我以前只學過友元函數(shù),難道還有友元類么?希望知道的朋友能給我解釋一下。如果能告訴我相關的知識點的出處,讓我自己去學習一下就更好了,謝謝呵   :-)

            posted @ 2009-05-24 02:10 abilitytao 閱讀(1044) | 評論 (1)編輯 收藏

            已知先序+中序遍歷求后序遍歷(模板類)

             

            #include<iostream>
            #include
            <string>
            #include
            <algorithm>
            using namespace std;
            //////////////////////////////////////////////////////////////////////////////////////////
            ///                                    Pre_in_to_pos class
            ///        此類封裝了能夠將樹的先序遍歷和中序遍歷轉化成后序遍歷的操作(AC北大pku2255)
            ///                                                    -By abilitytao
            ///                                                            2009年5月24日
            //////////////////////BEGIN_TEMPLATE_BY_ABILITYTAO_ACM/////////////////////////////////////

            class Pre_in_to_pos
            {

            private:
                
            string pre;
                
            string in;
                
            string post;
                
            void trans(string a,string b);
            public:
                Pre_in_to_pos()
                
            {

                    pre.erase();
                    
            in.erase();
                    post.erase();
                }

                
            int inputpre();
                
            int inputpre(string a)
                
            {

                    pre
            =a;
                    
            return 1;
                }

                
            int inputin();
                
            int inputin(string a)
                
            {

                    
            in=a;
                    
            return 1;
                }


                
            void trans();
                
            void output();
                
            void clear();
            }
            ;

            int Pre_in_to_pos::inputpre()
            {

                cin
            >>pre;
                
            return 1;
            }


            int Pre_in_to_pos::inputin()
            {

                cin
            >>in;
                
            return 1;
            }


            void Pre_in_to_pos::trans(string a,string b)
            {

                
            int k=a.find(b.substr(0,1));
                
            if(k>0)
                    trans(a.substr(
            0,k),b.substr(1,k));
                
            if(k<a.length()-1)
                    trans(a.substr(k
            +1,a.length()-1-k),b.substr(k+1,b.length()-1-k));
                post
            +=a[k];
            }


            void Pre_in_to_pos::trans()
            {
                post.erase();
                trans(
            in,pre);
            }


            void Pre_in_to_pos::output()
            {

                cout
            <<post;
            }
            //沒有預置回車;


            /////////////////////END_TEMPLATE_BY_ABILITYTAO_ACM/////////////////////////////





            int main()
            {

                Pre_in_to_pos test;
                
            string pre;
                
            string in;
                
            while(cin>>pre>>in)
                
            {
                    test.inputpre(pre);
                    test.inputin(
            in);
                    test.trans();
                    test.output();
                    cout
            <<endl;
                }

                
            return 0;
            }

            posted @ 2009-05-24 01:41 abilitytao 閱讀(330) | 評論 (0)編輯 收藏

            突發(fā)奇想,研究一下string的find函數(shù)

            #include<iostream>
            #include
            <cmath>
            #include
            <algorithm>
            using namespace std;

            string a("abc");
            string b("f");

            int main()
            {

                
            int k;
                k
            =a.find(b.substr(0,1));
                cout
            <<k<<endl;
                
            return 0;

            }

            今天碰到一個問題,需要用到string的find函數(shù),可是卻不知道如果查找失敗會返回什么值,呵呵;
            測試之后才知道原來是-1.

            posted @ 2009-05-24 00:47 abilitytao 閱讀(1861) | 評論 (2)編輯 收藏

            ACRUSH(樓天成)八數(shù)碼問題源代碼

                 摘要: 題目描述: 八方塊移動游戲要求從一個含8個數(shù)字(用1-8表示)的方塊以及一個空格方塊(用0表示)的3x3矩陣的起始狀態(tài)開始,不斷移動該空格方塊以使其和相鄰的方塊互換,直至達到所定義的目標狀態(tài)。空格方塊在中間位置時有上、下、左、右4個方向可移動,在四個角落上有2個方向可移動,在其他位置上有3個方向可移動。例如,假設一個3x3矩陣的初始狀態(tài)為:   8 0 3 ...  閱讀全文

            posted @ 2009-05-22 02:24 abilitytao 閱讀(18271) | 評論 (6)編輯 收藏

            重寫二分查找模板

            //////////////////////////////////////////////////////////////////////////
            //                            二分查找模板
            //                                    by abilitytao
            ///////////BEGIN_TEMPLATE_BY_ABILITYTAO_ACM//////////////////////
            template<class T>
            *b_search(T key,T a[],int size)
            {
                
                
            int mid;
                
            int front=0;
                
            int rear=size-1;
                
            while(front<=rear)
                
            {
                    
                    mid
            =(front+rear)/2;
                    
            if(a[mid]==key)
                        
            return &a[mid];
                    
            else if(key>a[mid])
                    
            {
                        front
            =mid+1;
                        
            continue;
                    }

                    
            else if(key<a[mid])
                    
            {
                        rear
            =mid-1;
                        
            continue;
                    }

                }

                
            if(front>rear)
                    
            return NULL;
            }

            /////////////////////////END_TEMPLATE_BY_ABILITYTAO_ACM////////////////////////////


            上次在騰訊的比賽里用到這個模板,發(fā)現(xiàn)了一些問題,原因是通常查找的時候都是對結構體進行的,我們通過對結構體中的某一個key值進行查找然后再得到與它綁定的其他值。如果只是返回下標號,在有下標算數(shù)的查找里則需要特殊處理,可能返回指針會更加方便一點:-)

            posted @ 2009-05-22 01:54 abilitytao 閱讀(226) | 評論 (0)編輯 收藏

            向各位牛人請教一下

            最近學了MFC,想用它做一個簡單的坦克游戲,但是我不太清楚具體的設計思路,希望各位大牛能給我一些指點。

            posted @ 2009-05-20 13:15 abilitytao 閱讀(202) | 評論 (2)編輯 收藏

            僅列出標題
            共42頁: First 29 30 31 32 33 34 35 36 37 Last 
            少妇精品久久久一区二区三区| 国产叼嘿久久精品久久| 久久九九精品99国产精品| 久久精品人人做人人妻人人玩| 国产—久久香蕉国产线看观看 | 久久99精品久久久久子伦| 99久久免费只有精品国产| 人妻无码αv中文字幕久久琪琪布| 国产精品一区二区久久不卡| 久久久精品久久久久久| 99久久精品费精品国产一区二区| 久久久久久久亚洲精品| 国内精品久久久久| 2019久久久高清456| 久久国产精品久久久| 亚洲精品乱码久久久久久按摩| 国产激情久久久久影院小草| 国产色综合久久无码有码| 久久精品国产国产精品四凭| 国产午夜精品理论片久久影视| 久久精品国产亚洲AV蜜臀色欲| 久久无码人妻精品一区二区三区| 国产精品久久久天天影视| 日韩精品久久久肉伦网站| 久久中文字幕人妻丝袜| 日本久久久久久久久久| 很黄很污的网站久久mimi色| 久久精品国产91久久综合麻豆自制| 亚洲欧洲日产国码无码久久99| 四虎影视久久久免费观看| 久久精品国产一区二区三区| 伊人久久综合热线大杳蕉下载| 国产精品久久久久国产A级| 亚洲精品国产美女久久久| 精品国产青草久久久久福利| 久久亚洲sm情趣捆绑调教| 99蜜桃臀久久久欧美精品网站| 国产精品成人久久久| 亚洲精品无码久久久久久| 久久人人爽人人爽人人AV| 久久99国产乱子伦精品免费|