原创 簡單數據結構的實現之二叉樹

二叉樹是一種有些特殊的數據結構,因爲單獨一個頂點也算二叉樹。那麼,我們不妨定義二叉樹的結點類,而不是去定義整個二叉樹類。下面是二叉樹的節點類: #include <iostream> using namespace std; #ifn

原创 不要懷疑,結構體作爲形參可以按引用傳遞!

寫了個程序,出了問題,還以爲結構體不能按引用傳遞。事實證明,我錯了,我錯誤的原因也找到了,跟結構體的引用沒有任何關係。羅嗦一點,把二叉樹的非遞歸後序遍歷代碼和自己寫的鏈棧GetTop函數貼在下面: template <class Elem

原创 mips程序設計——直接插入排序的遞歸與非遞歸實現(spim模擬)

非遞歸形式源碼: .data array:.space 1024 #開闢數組空間 input_number_msg:.asciiz "Please input number of integers: " input_in

原创 gcc compiler warning: “will be initialized after/when initialized here”

先看看我爲二叉樹寫的結點類: template <class ElemType> class TreeNode { private: TreeNode* lchild; TreeNode* rchild; public:

原创 Error: template argument uses local type

請看如下一段代碼: template <class ElemType> void PostOrderTraverse_I(TreeNode<ElemType>* t,void (*Visit)(ElemType& e)) { st

原创 泛型編程使用gcc編譯器時的兩個注意事項:關於typename和迭代器

    其實,我想說的是,在使用模板類時要注意一點,即何時必須使用typename而不是class來指定模板類型形參。其實在C++神作《C++ Primer (特別版)》的第16章“模板和泛型編程”中已經說得很明白了。下面,我結合自己遇到

原创 中點畫圓算法的實現

    算法來源於Donald Hearn和M. Pauline Baker合著的神作《計算機圖形學》。程序在codeblocks下采用win32 api編程實現。 #include <windows.h> #include <math.

原创 ubuntu 12.04編譯安裝FOX TOOLKIT

    fox的好處很多,簡潔、開源和跨平臺無疑非常吸引人。不過,在ubuntu下自己動手編譯並安裝fox還是費了一番周折。安裝成功這個界面庫對我而言是相當振奮人心的,因爲這是我第一次在linux體驗自己動手編譯安裝軟件的樂趣。    

原创 warning: control reaches end of non-void function

用gcc編譯一個程序的時候出現這樣的警告: warning: control reaches end of non-void function 它的意思是:控制到達非void函數的結尾。就是說你的一些本應帶有返回值的函數到達結尾後可能並沒

原创 中點橢圓算法的實現

        中點橢圓算法和中點畫圓算法的原理挺相似的。決策參數的計算過程也相近。本人在codeblocks下用win32 api寫了簡單的演示程序,但是發現了一些問題,稍後提出。 #include <windows.h> #inclu

原创 Bresenham直線算法的實現

    算法挺簡單的,但是由於Donald Hearn和M. Pauline Baker的神作《計算機圖形學》上只給了|m|<1時候的算法,我在這裏把|m|>=1時候的算法也順帶實現了。直接上程序了。 #include <windows.

原创 簡單數據結構的實現之線索二叉樹

 線索二叉樹,我寫過的比較噁心的數據結構之一。我一直認爲線索化應該是對二叉樹的一個操作。可是,線索二叉樹與普通的二叉樹卻實在大有不同。算了,不說了,上代碼! #include <iostream> using namespace std

原创 gcc error: undefined reference to + 類構造函數

    我遇到這個錯誤,純粹是收到IDE的毒害,導致自己傻子似的不知道程序是怎樣被編譯執行的。     爲了詳細解釋,先寫了一個頭文件a.h如下: class A { public: int a; A(); ~A(); }

原创 gcc error: 'class A' has no member named 'b':誤用多態導致的錯誤

        我讀本科時候所用的程序設計教材上有這麼一句話:“指向基類對象的指針可以指向該基類的公有派生類對象(注意反過來不成立),這是運行時多態性的基礎。指向基類對象的指針指向派生類對象後,可以訪問派生類對象中由基類繼承下來的成員,但

原创 在ubuntu 12.04環境下配置Motion Strategy Library(MSL)

    MSL是UIUC的Steve Lavalle等人用C++寫的機器人運動規劃仿真平臺,其中給出了多種PRM算法和RRT算法的完整實現和仿真,是研究機器人運動規劃的有力工具。UIUC最初提供的軟件包是工作在redhat linux平臺