原创 我的友情鏈接

51CTO博客開發

原创 二叉樹遞歸遍歷和非遞歸遍歷

1. 二叉樹遍歷定義 遍歷二叉樹,即遵從某種次序訪問二叉樹中的所有節點,使得每個節點僅被訪問一次。這裏提到的“訪問”是指對節點施行某種操作,可以是輸出節點信息,修改節點值等,但要求這種訪問不破壞它原來的數據結構。在本文中,遍歷操作操作爲訪問

原创 字符串匹配算法

KMP是有名的字符串模式匹配算法,它根據模式串自身的特點在匹配的過程中出現失配時減少回溯來提高效率。KMP算法的時間複雜度爲 O(m+n)。1. 簡單的字符串查找在分析KMP算法前,先看下簡單的匹配算法,其時間複雜度爲O(m*n)。例如:在

原创 堆排序詳解

堆排序1. 堆定義 堆是一種特殊的二叉樹,具備以下兩種性質 1)每個節點的值都大於(或小於,稱爲最小堆)其子節點的值 2)樹是完全平衡的,並且最後一層的樹葉都在最左邊 二叉堆是一種完全二叉樹,其任意子樹的左右節點(如果有的話)的鍵值一定比

原创 死鎖

計算機程序運行時需要調度和使用各種資源,其包括軟的資源(如程序代碼)和硬的資源(如掃描儀、打印機等)。資源一般可以分兩種:可剝奪資源(Preemptable)和不可剝奪資源(Nonpreemptable)。一般來說對於由可剝奪資源引起的死鎖

原创 C/C++數組名與指針區別深入探索

引言  指針是C/C++語言的特色,而數組名與指針有太多的相似,甚至很多時候,數組名可以作爲指針使用。於是乎,很多程序設計者就被搞糊塗了。而許多的大學老師,他們在C語言的教學過程中也錯誤得給學生講解:"數組名就是指針"。很幸運,我的大學老師

原创 鏈表是否存在環及環入口點、兩個鏈表是否相交、相交鏈表的第一個公共結點

鏈表是否存在環及環入口點、兩個鏈表是否相交、相交鏈表的第一個公共結點1.求鏈表倒數第k個結點題目描述:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點,鏈表的倒數第0個結點爲鏈表的尾指針。分析:設置兩個指針p1,p2,首先p1和p2都指向鏈表頭

原创 鏈表是否存在環及環入口點、兩個鏈表是否相交、相交鏈表的第一個公共結點

鏈表是否存在環及環入口點、兩個鏈表是否相交、相交鏈表的第一個公共結點1.求鏈表倒數第k個結點題目描述:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點,鏈表的倒數第0個結點爲鏈表的尾指針。分析:設置兩個指針p1,p2,首先p1和p2都指向鏈表頭

原创 死鎖

計算機程序運行時需要調度和使用各種資源,其包括軟的資源(如程序代碼)和硬的資源(如掃描儀、打印機等)。資源一般可以分兩種:可剝奪資源(Preemptable)和不可剝奪資源(Nonpreemptable)。一般來說對於由可剝奪資源引起的死鎖

原创 字符串匹配算法

KMP是有名的字符串模式匹配算法,它根據模式串自身的特點在匹配的過程中出現失配時減少回溯來提高效率。KMP算法的時間複雜度爲 O(m+n)。1. 簡單的字符串查找在分析KMP算法前,先看下簡單的匹配算法,其時間複雜度爲O(m*n)。例如:在

原创 人是有思想的動物

       讀了5年的研究生,最終也還是爲了找一份工作。一次在聯通的營業廳排隊給老婆打印月賬單和發票,後面是一位很光鮮的中年阿姨,可能大姐更合適些。她拿着新買的iphone5問我怎麼使用,對她的問題我簡明回答了。見我揹着一個很重的書包又

原创 堆排序詳解

堆排序1. 堆定義 堆是一種特殊的二叉樹,具備以下兩種性質 1)每個節點的值都大於(或小於,稱爲最小堆)其子節點的值 2)樹是完全平衡的,並且最後一層的樹葉都在最左邊 二叉堆是一種完全二叉樹,其任意子樹的左右節點(如果有的話)的鍵值一定比

原创 我的友情鏈接

51CTO博客開發

原创 動態規劃解決LCS問題

1. 問題定義: 給定兩個序列 X = {x1, x2, ......, xm } 和 Y = {y1, y2, ......, yn },找出 X 和 Y 的最長公共子序列。 一個給定序列的子序列是在該序列中刪去若干個元素後得到的序列。給

原创 MySQL觸發器(TRIGGER)使用說明

MySQL觸發器(TRIGGER)使用說明觸發器程序是與表有關的命名數據庫對象,表上出現特定事件時,將激活該對象。Mysql5之後開始支持觸發器,並且在創建觸發器後會自動在/var/lib/mysql目錄下生成TRG以及TRN文件(Linu