原创 非遞歸學習樹結構(二)--前中後遍歷

 樹是數據結構裏面比較複雜的一種結構,很多科班出身的程序員都不一定搞得清楚其具體的結構與原理,本人本科使用的是嚴的《數據結構》,大二時開始學習的,當時編程能力尚處在起步階段,對於書中一些數據結構和算法沒有能力切切實實的實現。然而,作

原创 非遞歸學習樹結構(四)--BST(二叉排序)樹

 二叉查找樹,排序二叉樹(中序遍歷結果是有序序列),二叉搜索樹其實說的都是BST樹,對於二叉查找樹中的每一個非葉子節點,其左子節點的值比當前結點的值小,其右子節點的值比當前結點的值大。 二叉查找樹有個特點,那就是對BST樹進行中

原创 寫代碼學習Windows程序編寫---動態鏈接庫編程

Windows API中所有的函數都包含在DLL中,其中最重要的三個DLL分別是HERNEL32.DLL  User32.dll  GDI32.dll  在使用動態鏈接庫的時候,往往要提供兩個文件:引入庫(.lib)和DLL。引入

原创 算法學習系列之二章---KMP算法圖解

一、簡介         KMP算法,首先與BF算法做比較…….(此處略去簡介200字,至於哪200字,網上隨便找一篇講KMP算法的基本上都會先講樸素算法); 二、題外話         記得大二的時候,DS課程設計就是實現KMP算法,當

原创 非遞歸學習樹結構(三)--深廣優先搜

 深度優先搜索和廣度優先搜索是樹形結構中常用的兩種搜索遍歷方式,其實更多的是用在圖中的,深度優先搜索可以用來判斷有向圖中是否存在環,廣度優先搜索就更有用了,常用的路徑搜索算法一般都是建立在廣度優先搜索的基礎上,如dijkstra(迪

原创 非遞歸學習樹結構(六)--RB-Tree(紅黑樹)

 終於深入的理解並用代碼一步一步實現了紅黑樹。Linux內核的進程調度和內存管理,STL庫的map容器的實現都使用了紅黑樹,這是一種效率很高的二叉搜索樹,效率基本上滿足log(n),它與AVL樹有什麼區別呢? 學習了AVL樹之後

原创 Python讀取Postgresql後將數據傳遞給C++共享庫

 Python調用C++,參數傳遞的方式有很多種,單個參數傳遞可以參考一下鏈接 http://blog.csdn.net/fxjtoday/article/details/6059874   下面介紹一下如何使用Python讀

原创 使用GDAL/OGR操作Postgresql數據庫

 GDAL(Geospatial Data AbstractionLibrary)是一個在X/MIT許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數據轉換和處理。 本

原创 算法學習系列之初章---R-Tree

        工作也有一段時間了,在完成工作的同時,自己也學到了很多的知識,今天答辯,正好對以前所做的東西,所學習到的知識做了一個總結,突然發現自己有很多東西都要忘記了,而且有些東西本來都是一些現有的算法,由於項目需求就直接“拿來主義”

原创 大整數乘法(高精度)

 對於超過20位的數的乘法問題,我們無法使用普通的方法!!!即使是longlong也會超出範圍的! 像這樣的數,我們只能使用高精度的知識利用數組的方法解決問題! 對於高精度乘法的問題,其實思路和高精度加法的思路差不多,都需要使用 字符

原创 像VS/VC一樣調試python調用的C++共享庫

 前面介紹了使用GDB調試python調用的c++共享庫,但是對於習慣了IED調試的同學來說真的很不習慣,那麼下面就介紹一種使用IED調試python調用的C++共享庫的方法。 代碼還是前面的代碼 代碼鏈接:測試用代碼

原创 一次使用thrift遇到的客戶端close_wait的問題

  如上圖,客戶端close_wait,肯定是因爲服務端發起了關閉操作。 服務端close,但是客戶端沒有close,所以客戶端進入了close_wait的狀態。這種情況一般出現在:提前創建了連接池,如果池子中的某些(或者全部)連接一段

原创 非遞歸學習樹結構(五)--AVL(自平衡二叉排序)樹

 在上一篇非“遞歸學習樹結構(四)--BST(二叉排序)樹”中我們介紹了怎麼樣創建一顆二叉排序樹,以及如何刪除二叉排序樹中的一個結點。但是考慮到BST的效率,着實讓人糾結,回想一下上一篇中的最後一張圖,是不是有一種DT的感覺,BST

原创 非遞歸學習樹結構(一)--棧和隊列的實現

        在開始學習樹結構之前,有必要先學習一下棧和隊列的知識,我們知道,在樹結構中最讓人頭疼的就是各種遞歸,據傳言,所有的遞歸都可以用棧來實現,因爲遞歸的過程其實就是進棧出棧的過程,因此,可以把遞歸改寫成對棧的迭代操作,對於是遞歸

原创 使用GDB調試python調用的C++共享庫

 最近在python框架下開發,一些性能要求高的處理用C++寫,然後編成共享庫在python 程序中調用,於是問題來了,怎麼對python的共享庫進行調試呢?既然是在Linux下,那麼首先想到的肯定是用GDB進行調試,那麼下面先介