原创 貪心算法解決活動安排問題

4.2 活動安排問題 設有n個活動的集合E={1, 2, …, n},其中每個活動都要 求使用同一資源,如演講會場等,而在同一時間內只有一個 活動能使用這一資源。 每個活動i都有一個要求使用該資源的起始時間si和一個 結束

原创 用C++語言實現貪喫蛇遊戲

寫在前面 用C++語言寫遊戲再適合不過了,當然不是因爲用它寫起來簡單,(相反那並不簡單),但是其性能絕對是其他語言沒法比的。所以這裏我會用C++實現一個貪喫蛇的遊戲。當然我可能有意隱瞞了你,因爲我們不僅僅是用C++純語言來幹這件事

原创 (接上一篇)二叉樹的基本應用舉例

後序遍歷和層序遍歷 上一篇博文中已經通過該死的遞歸把二叉樹通過前序和中序序列給重建出來了,當然我們應該來應用這可二叉樹,以便驗證我們建立的效果。 當然,善於實踐的你可能已經知道了上篇博文中的代碼不能直接運行,因爲裏面還有其他的

原创 C位字段簡單總結

About… C裏面的位字段十分有用和強大,想位操作符一樣,也是一種直接對數據位operator的一種方法。在《C Primer Plus》一書中,對位字段的解釋十分具體和徹底。這裏主要對書中內容做一些摘要和總結。 位字段!Wh

原创 用C++語言實現貪吃蛇遊戲

寫在前面 用C++語言寫遊戲再適合不過了,當然不是因爲用它寫起來簡單,(相反那並不簡單),但是其性能絕對是其他語言沒法比的。所以這裏我會用C++實現一個貪吃蛇的遊戲。當然我可能有意隱瞞了你,因爲我們不僅僅是用C++純語言來幹這件事

原创 數據結構——鏈式棧模板類實現

數據結構筆記3.1.3 鏈式棧和前面的順序棧是棧的兩種不同實現形式,其實就是順序表與鏈式表,區別在於其實現的方式(數組和指針節點),順序棧指的是其每個節點的物理存儲是連續的,因爲是使用數組實現的。而鏈式棧存儲位置則是不連

原创 C的位運算符系統梳理

概述 C語言的位運算符十分常用也十分好用。使C區別於其他高級語言的的特性之一是訪問整數中的個別位的能力。它十分接近底層硬件,這個特性通常是程序與硬件設備和操作系統相連接的關鍵! 下面我就係統的梳理下C語言中關於位運算符的使用和

原创 用C#編寫一個簡單記事本程序(上)

概述 這裏主要是模仿記事本的簡單功能,因爲實際一個記事本的功能還是相當多的,包括改變字體、查找、改變顏色等等。這裏主要實現記事本裝載文件、保存文件及快捷鍵設置等功能。如果想編寫一個功能齊全的記事本應用可以在其基礎上擴展功能模塊,只

原创 數據結構——基於數組的優先級隊列模板類實現

數據結構筆記3.4 與普通的隊列不同,優先級隊列並不一定按照FIFO(先進先出)的原則對數據進行操縱,而是每次從隊列取出具有最高優先權的元素。打個比方,你現在有一堆任務,而你只能一項一項的完成,一種方式是哪項任務先來的你

原创 有關C++ 實現時extern 和const的問題

怎樣把const常量實現文件間共享? 之所以會先提起這個問題,當然和要解決的問題息息相關。你也許不禁會問:難道const常量不是文件間共享的嗎?當然不是,原因是const常量的特殊性。下面我們看看c++ primer的作者怎麼說

原创 數據結構——順序雙棧模板類實現

數據結構3.1.2 順序棧中單棧和雙棧(數組的兩端分別爲棧底)其實極爲相似,道理上是一樣的,實現的時候只需要多定義一套top標記和bottom標記即可,在判斷棧FULL的時候,即是判斷兩個top是否相遇,這裏我用兩個元素

原创 數據結構——循環隊列(順序隊列)模板類實現

數據結構筆記3.3 順序隊列是用順序表實現的(即依託於數組),這裏實現的是循環隊列,其實也可以不用循環,但是那樣的話,空間的利用效率就太低了,這就是”假溢出”問題,因爲在數組的前端可能還有空閒的位置(因爲隊列中的數據是在

原创 數據結構——靜態鏈表模板類實現

數據結構筆記2.6 最近總算把靜態鏈表的模板class整理出來了,之所以耽誤時間,一方面是因爲……,另一方面是靜態鏈表和普通鏈表在思考上還是有差別的,把無序的東西(普通鏈表的每個節點)聯繫起來,還比較自然,但是把有序的東

原创 C#編寫記事本程序(下)——擴展功能

擴展記事本的功能 上次的文章只是給出了編寫記事本的文件裝載及保存的部分,但是對於一個記事本僅僅有基本的功能還是不能滿足人們編輯文本的需要的,這裏就接着上篇博文的內容,對記事本的大部分功能進行擴展。當然,大部分的解釋都在代碼的註釋中

原创 數據結構——鏈式隊列模板類實現

數據結構筆記3.3.3 Queue 與棧類似,隊列也分成順序隊列和鏈式隊列。用單鏈表表示的鏈式隊列特別適合於元素變動比較大的情形,而且不存在隊列FULL而溢出的情況。另外,假若程序中需要多個隊列,與多個棧的情形一樣,最好