原创 在 Linux 下搭建 Git 服務器

目錄 ① 安裝 Git ② 服務器端創建 git 用戶,用來管理 Git 服務,併爲 git 用戶設置密碼 ③ 服務器端創建 Git 倉庫 ④ 客戶端 clone 遠程倉庫 ⑤ 客戶端創建 SSH 公鑰和私鑰 ⑥ 服務器端 Git 打開

原创 程序猿必修課之數據結構(四)線性表2

上篇我們複習的線性表的順序存儲結構,它的最大缺點就是:插入和刪除是需要移動大量元素,造成時間的浪費。 導致這個問題的原因是,相鄰兩個元素的存儲位置也具有鄰居關係,也就是說它們在內存中是挨着的,中間沒有空隙,當然就無法快速插入,而刪除後,當

原创 程序猿必修課之數據結構(三)線性表1

線性表的定義 線性表(List):零個或多個數據元素的有限序列。 首先它是一個序列。也就是說,元素之間是有順序的,若存在多個元素,則第一個元素無前驅,最後一個元素無後繼,其他每個元素都有且只有一個前驅和後繼。 其次,線性表強調是有限的。

原创 程序猿必修課之數據結構(二)算法和算法的複雜度

算法 算法是解決特定問題求解步驟的描述,在計算機中表現爲指令的有限序列,並且每條指令表示一個或多個操作。 算法的特性 算法具有五個基本特性:輸入、輸出、有窮性、確定性、可行性。 算法設計的要求 好的算法,應該具有:正確性、可讀性、健壯

原创 程序猿必修課之數據結構(七)棧2

棧的應用——遞歸 斐波那契(Fibonacci)是一個經典的遞歸例子。 斐波那契數列 數字 1,1,2,3,5,8,13......構成一個序列,它的特點是:前面相鄰兩項之和是後一項的值。用數學函數來定義是: 斐波那契數列 用遞歸實現打

原创 程序猿必修課之數據結構(十)樹1

樹是一對多的數據結構 樹的定義 樹(Tree)是 n (n ≥ 0)個結點的有限集。 n = 0 時,稱爲空樹。 在任意一棵非空樹中: 有且僅有一個特定的根(root)結點。 當 n > 1 時,其餘結點可分爲 m (m > 0) 個

原创 程序猿必修課之數據結構(八)隊列

隊列的定義 隊列(Queue)是隻允許在一端進行插入操作,而在另一端進行刪除操作的線性表。 隊列是一種先進先出(First In First Out)的線性表,簡稱FIFO。允許插入的一端稱爲隊尾,允許刪除的一端稱爲隊頭。 隊列的抽象數據

原创 程序猿必修課之數據結構(六)棧1

棧的定義 棧(Stack)是限定僅在表尾進行插入和刪除操作的線性表。 我們把允許插入和刪除的一端稱爲棧頂(top),另一端稱爲棧底(bottom),不含任何數據元素的棧稱爲空棧。棧又稱爲後進先出(Last In First Out)的線性

原创 程序猿必修課之數據結構(一)數據結構基本概念和術語

數據結構:是相互之間存在一種或多種特定關係的數據元素的集合。 本文將“數據結構”分爲 “數據” 和 “結構” 兩部分。 數據 程序設計 = 數據結構 + 算法 數據 “數據”是描述客觀事物的符號,是計算機中可以操作的對象,是能被

原创 程序猿必修課之數據結構(五)線性表3

循環鏈表 對於單鏈表,由於每個結點只存儲了向後的指針,到了鏈表末尾就停止了向後鏈的操作,這樣,結點就無法找到它的前驅結點了。 將單鏈表中終端結點的指針域由空指針改爲指向頭結點,就使整個單鏈表形成一個環,這種頭尾相接的單鏈表稱爲單循環鏈表,

原创 程序猿必修課之數據結構(九)串

串的定義 串(String)是由零個或多個字符組成的有限序列,又名字符串。 從定義中可以看出:、 串的字符數目是“有限”的,零個字符的串叫“空串(null string)”。 它是一個序列,相鄰字符之間具有前驅和後繼關係。 空格串 只包含

原创 HTTP狀態碼->HTTP Status Code

HTTP Status Code 常見的狀態碼: HTTP: Status 200 – 服務器成功返回網頁 HTTP: Status 404 – 請求的網頁不存在 HTTP: Status 503 – 服務不可用   說明: HT

原创 堆操作與堆排序

首先,我們來認識堆:   堆的建立:將給定的序列按層次遍歷建立完全二叉樹,然後從最後一個非終端結點開始自下向上逐步調整爲堆。   這裏就有兩個重要的操作,shift_up(int t)和shift_down(int t),這樣我們就建立了

原创 Token 與 Session 相關區別

1. 爲什麼要有session的出現? 答:是由於網絡中http協議造成的,因爲http本身是無狀態協議,這樣,無法確定你的本次請求和上次請求是不是你發送的。如果要進行類似論壇登陸相關的操作,就實現不了了。 2. session生成方式?

原创 RESTFUL的六個約束

定義個一個 RESTful 系統的時候應該遵循 6 個約束。 它們限制了服務端只能遵循這些約束來處理和響應客戶端請求,但是遵循這些約束服務也可以獲取理想的非函數化的屬性,例如性能、可伸縮、簡單程度、可變能力、可見度、靈活性、可信度。 如果