原创 面向對象設計模式總結一

面向對象設計的優點 面向對象設計的優點:可維護、可擴展、可複用、靈活性好。 目標 面向對象設計的目標:高內聚,低耦合。 設計模式分類 面向對象常見的23種設計模式主要分爲:創建型、結構型和行爲型。 創建型:工廠方法模式、抽

原创 阻塞,非阻塞connect()和accept()

非阻塞connect()和accept() 一.select()函數 select()函數準備好讀的條件: 1>.套接口有數據可讀 2>.該連接的讀這一半關閉(也就是接收了FIN的TCP連接)。對這樣

原创 數據結構和算法經典100題-第30題

題目要求:先序、中序和後序數組兩兩結合重構二叉樹已知一棵二叉樹的所有節點都不同,給定二叉樹的先序、中序和後序數組,請分別用三個函數實現任意兩種組合重構原來的二叉樹,並返回重構二叉樹的頭節點。 題目解析: 這道題目中,由先序數組

原创 數據結構和算法經典100題-第24題

在二叉搜索樹中尋找一個節點的後繼節點 題目要求 假設有二叉樹節點: class Node { public: Node *parrent; Node *left; Node *right; in

原创 數據結構和算法經典100題-第21題

題目要求: 給定數組arr,arr[i] == k代表可以從位置i向右跳1~k個距離,比如,arr[2] == 3,代表從位置2可以跳到位置3、位置4或位置5,如果從位置0出發,返回最少跳幾次能跳到arr最後的位置上? 解析:

原创 數據結構和算法經典100題-第29題

題目要求:二叉樹節點間的最大距離問題從二叉樹的節點A出發,可以向上走或者向下走,但沿途的節點只能經過一次,當達到節點B時,路徑上的節點數叫作A到B的距離。比如: 1 2 3

原创 數據結構和算法經典100題-第28題

題目要求:{1,2,3…N}表示一棵二叉樹中序遍歷結果, 1.求有多少種可能的二叉樹結構? 2.返回所有可能的二叉樹結構的頭結點? 題目解析: 1.一個關鍵點是:中序遍歷一棵二叉樹結果有序無重複,那麼這棵二

原创 ostringstream的用法(轉載)

ostringstream的用法 【本文來自】http://www.builder.com.cn/2003/0304/83250.shtml http://www.cppblog.com/alantop/archive/200

原创 數據結構和算法經典100題-第22題

題目要求: 排成一條線的紙牌博弈問題 給定一個整形數組arr,代表數值不同的紙牌排成一條線。玩家A和玩家B依次拿走每張紙牌,規定玩家A先拿,玩家B後拿,但每個玩家每次只能拿走最左或最右的紙牌,玩家A和玩家B都絕頂聰明,請返回最

原创 數據結構和算法經典100題-第23題

題目: 給定一個有序數組int array[n],已知其中沒有重複值,用這個有序數組生成一棵平衡二叉樹,要求中序遍歷結果與數組一致。 題目解析: OKay,此題很簡單,關鍵點是:拿數組的中間元素做根,然後數組中間元素左邊爲左

原创 Go語言的方法接受者類型用值類型還是指針類型?

轉載自:http://www.jb51.net/article/56832.htm 概述 很多人(特別是新手)在寫 Go 語言代碼時經常會問一個問題,那就是一個方法的接受者類型到底應該是值類型還是指針類型呢,Go 的 wiki

原创 數據結構和算法經典100題-第25題

判斷兩個字符串是否互爲變形詞 題目要求: 給定兩個字符串str1和str2,若str1和str2中的字符種類一樣,每個字符出現的頻率一樣,那麼str1和str2就互爲變形詞。 題目分析: 可以先把一個字符串中字符出現的頻率統

原创 二叉樹的先序、中序和後序遍歷(總結)

廢話不多說,分別給出二叉樹的先序、中序和後序遍歷的遞歸和非遞歸算法。 先序遍歷-遞歸算法: class Node { public: int value; Node *left; Node *right;

原创 數據結構和算法經典100題-第31題

題目要求: 字符串中的數字子串求和 要求忽略小數點,–得正例如:ABC1def-2cddg–3op,則解析爲(1) + (-2) + (–3) = 1 - 2 + 3 = 2 這道題很簡單我就不寫題目分析了。直接給出了

原创 數據結構和算法經典100題-第33題

題目要求: 二叉樹的序列化和反序列化。二叉樹被記錄成文件的過程叫做二叉樹的序列化,通過文件內容重建原理二叉樹的過程叫做二叉樹的反序列化。 請設計一種方案實現二叉樹的序列化和反序列化。 題目解析: 用兩種方法: 1.先序遍