原创 初涉 Git 心得

一. 關於Git    什麼是版本?軟件時不時彈出讓你更新到幾點幾點幾的提示,那幾點幾點幾就是一個個的版本,也就是不同的內容就是不同的版本;什麼是版本控制?就是對各種版本無論修改前還是修改後的管理;什麼是集中式版本控制?就是對於版本的管理控

原创 二叉搜索樹的後序遍歷序列——24

    輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則返回true,否則返回false。假設輸入數組的任意兩個數組都互不相同。    二叉搜索樹的特點就是每個結點的左子樹的值都比自身的值小,而右子樹的值都比自身值要

原创 Linux之——五種IO模型

一. 同步與異步    之前在對線程的談論中提到了線程對臨界資源訪問的一個同步與互斥的關係,這裏要強調,在IO模型中的同步與異步與線程的同步與互斥完全不是一回事。        所謂同步,就是指當調用者發出調用的時候,在沒有得到結果之前調用

原创 從上往下打印二叉樹——23

   從上往下打印出二叉樹的每個結點,同一層的結點按照從左到右的順序打印。例如如下二叉樹打印出的結果爲1、2、3、4、5、6、7、8、9。    上面所說的也就是二叉樹的層序遍歷,對於層序遍歷來說,首先訪問的肯定是根節點,然後是其左右結點,

原创 數據庫之——索引、觸發器、事務(存儲引擎)

一. 數據庫    數據庫(DataBase)是按照數據結構來組織、存儲和管理數據的倉庫。其主要特點有如下幾個方面:實現數據共享數據共享包含所有用戶可同時存取數據庫中的數據,也包括用戶可以用各種方式通過接口使用數據庫,並提供數據共享;減少數

原创 shell腳本練習題

求出數字1~100的累加和:要求數字的累加,可以使用循環來完成,如下代碼:#!/bin/bash sum=0 str="" #for i in {1..100} for ((i=1 ; i<=100 ; ++i)) do     str+

原创 漫談shell腳本

一. 關於shell    shell,英文是殼,外殼的意思,至於在計算機中,同樣有這樣的一層意思,也就是可以將shell看做是計算機系統封裝的一層外殼,來供用戶使用,因此,用戶可以通過操縱shell也就是輸入一系列命令來達到各種需要的目的

原创 時隔一年多之後的這個地方

    嗯要怎麼說,有一年左右沒有回到這個地方了。    創建這個博客的時候我還是站在編程大門口的一隻小白,現在不說是有什麼經驗,但兩隻腳算是完全的站在軟件編程的這個大門裏面了。三年前還並不知道自己會走上這條路,兩年前開始踏入,經過一年多的

原创 shell下的grep工具

一. grep    grep(Globally search a Regular Expression and Print)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,將匹配的行打印出來,但是並不影響原文件的內容;並且通過返回值

原创 關於HTTP中的keep-alive

一. 關於HTTP    首先,HTTP是超文本傳輸協議,是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連接方式,其主要特點有如下:支持客戶/服務器模式;簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法

原创 IO複用之——poll

一. 關於poll    對於IO複用模型,其優點無疑是免去了對一個個IO事件就緒的等待,轉而代之的是同時對多個IO數據的檢測,當檢測等待的事件中至少有一個就緒的時候,就會返回告訴用戶進程“已經有數據準備好了,快看看是哪個趕緊處理”,而對於

原创 IO複用之——epoll

一. 關於epoll    對於IO複用模型,前面談論過了關於select和poll函數的使用,select提供給用戶一個關於存儲事件的數據結構fd_set來統一監測等待事件的就緒,分爲讀、寫和異常事件集;而poll則是用一個個的pollf

原创 IO複用之——select

一. select    前面提到Linux下的五種IO模型中有一個是IO複用模型,這種IO模型是可以調用一個特殊的函數同時監聽多個IO事件,當多個IO事件中有至少一個就緒的時候,被調用的函數就會返回通知用戶進程來處理已經ready事件的數

原创 字符串的排列——28

    輸入一個字符串,打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a、b、c所能排列出來的所有字符串abc、acb、bac、bca、cab和cba。    對於一個字符來說,只有一個排列就是其自身,那麼對於多個字符

原创 二叉搜索樹與雙向鏈表——27

    輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表,要求不能創建任何新的結點,只能調整樹中結點指針的指向。如上所示的二叉搜索樹,轉換成排序的雙向鏈表就是5-><-6-><-7-><-8-><-9-><-10-><-11。