Time of Update: 2018-12-04
鏈表是一種使用比較頻繁的資料結構,似一條鏈子一樣的數學抽象模型。它能解決很多數學題目,比如猴子選大王問題。鏈表也是一種線性結構,他的全名叫線性表的鏈式儲存結構,之所以這麼叫,是因為他還有個哥哥,叫線性表的順序儲存結構,哥哥有他的優點:隨機存取速度快;但是也有自身的弱點:在作Insert或Delete操作時,需要移動大量元素,效率低。哥弟倆的區別是什麼呢?線性表的順序儲存結構:在邏輯上相鄰的元素在物理位置(記憶體)上也相鄰;線性表的鏈式儲存結構:在邏輯上相鄰的元素在物理位置(記憶體)上不一定相鄰;
Time of Update: 2018-12-04
當鏈表的每個結點只包含一個指標域時,我們稱此鏈表為單鏈表。關於單鏈表的存取,有時候我們在單鏈表的第一個結點(有效元素)之前附設一個結點,稱之為頭結點;指向頭結點的指標,稱之為頭指標;對單鏈表的存取必須從頭指標開始進行,由於單鏈表的最後一個資料元素沒有直接後繼,則指標為NULL。對於頭結點,資料域可以不儲存任何資訊,也可儲存如鏈表長度等附加資訊。對於單鏈表的操作,包括初始化、增、刪、改、查:單鏈表的初始化得到單鏈表中的某一個元素單鏈表的遍曆增加一個結點到單鏈表中(add)從單鏈表中刪除一個結點(d
Time of Update: 2018-12-04
比如單鏈表A -> B -> C -> D -> E -> F -> NULL 反轉得到 F -> E -> D -> C -> B -> A -> NULL
Time of Update: 2018-12-04
在mysql中,大多數索引(如 PRIMARY KEY,UNIQUE,INDEX和FULLTEXT)都是在BTREE中儲存,但使用memory引擎可以選擇BTREE索引或者HASH索引,兩種不同類型的索引各自有其不同的使用範圍。Hash 索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像B-Tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的IO訪問,所以 Hash 索引的查詢效率要遠高於 B-Tree 索引。可能很多人又有疑問了,既然 Hash 索引的效率要比 B-
Time of Update: 2018-12-04
第一:對於動態構造SQL查詢的場合,可以使用下面的技術:(1)替換單引號,即把所有單獨出現的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義。(2)刪除使用者輸入內容中的所有連字號,防止攻擊者構造出類如“SELECT * from Users WHERE login = 'mas' -- AND password
Time of Update: 2018-12-04
本文為yanjiangbo原創@2012-03-07,請尊重著作權,轉載請說明出處http://blog.csdn.com/yanjiangbo 如果讓你來最佳化資料庫,你會從哪幾個方面考慮?以下是我考慮的一些方面,總有一款適合你資料庫設計方面盡量在設計欄位的時候,選取合適的欄位類型,能用char,就不要用varchar,能用enum,就不要用char,能用smallint就不要用int,少用text欄位等等;建立合適的索引,但不可過多,對於那些經常查詢的欄位,建立索引,對於哪些經常用不到的欄位
Time of Update: 2018-12-04
緒論,有時候我們也稱作前言,我比較喜歡看,以前在大學的時候,每次老師講資料機構,我就看緒論,因為聽不懂老師講的東西,總感覺資料結構很深奧,就不停地看緒論,看看資料結構能做些什麼,在平時的生活中怎麼使用,我這個人有個毛病,平時生活用不到的,我就不怎麼喜歡學,覺得沒用,結果大學四年都沒有明白它,所以當時的選擇就是放棄;隨著自己工作了,coding多了,對軟體的理解深刻了點,也漸漸明白了資料機構的良苦用心,難怪前人告訴我們:要多點知識儲備。 資料結構實際上講的是資料 +
Time of Update: 2018-12-04
#include <stdio.h>#include <stdlib.h>typedef struct node{ char data; struct node
Time of Update: 2018-12-04
【演算法一】假設單鏈表有n個節點,如果尾節點為倒數第1個節點,那麼則為正向的第n個,有對應關係為(倒數 => 正數):1 => n2 => n-13 => n-2k =>
Time of Update: 2018-12-04
影響資料庫效能的因素主要包括以下幾個:1. 資料庫的邏輯設計2. 資料庫的實際部署3. 伺服器的硬體規格4. 索引與SQL語句的使用 在資料庫邏輯設計方面盡量做到第三範式(3NF) 在資料庫實際部署方面對於一些資料量比較大的資料表,可以考慮垂直或水平分割,並分別部署在不同的磁碟中,以提高查詢的效能;另外將資料表與索引分開存放,也可以提高查詢的效能。 在伺服器硬體規格方面如果在有預算許可的情況下,硬體升級也是不錯的方案。硬體升級可分為垂直延伸(Scale up)和水平延伸(Scale
Time of Update: 2018-12-04
1. 應該嚴格執行3NF,讓每個資料表的功能唯一,即只儲存相同類的資料,對於有交叉類的資料,則應該分割成多個功能表。例如如果員工表有員工部門的資訊,則應該分割成兩個表,員工表與部門表,它們之間用FK關聯,這對於資料庫的維護和效能的提升都有好處。 2. Primary Key 欄位的長度盡量小,能用small integer的就不要用integer。例如員工資料表,若能用員工ID做PK,就不要用社會安全號碼碼。 3.. 對於長度固定不變的欄位,如:中國公民社會安全號碼碼(舊的15位,新的18位),
Time of Update: 2018-12-04
格式: if [ 比較運算式 ];then#if後面有個空格;這裡用的是中括弧,不是大括弧;運算式的前面和後面各有一個空格;... ... elseif [ 比較運算式 ];then#elseif可以省略... ...else... ...fi#這裡是if的反寫 --- fi 範例: if [ $value -gt 10 ];then#空格無處不在,一旦缺少則會報command not found錯誤,then和;之間沒有空格echo
Time of Update: 2018-12-04
【演算法】這個完全是通過數學推匯出來的,設一快、一慢兩個指標,快指標的步長為2,慢指標為1,假設鏈表起點到環進入點之間的距離為x,環進入點到重合點的距離為y,假設在相遇之前慢指標走的s,則快指標必然走2s,所以有如下公式:s = x + y2s = nr + s(假設環的周長為r,在相遇前快指標走了n圈)由公式2推匯出s = nr,帶入公式1得到nr = x + y ===> x = nr
Time of Update: 2018-12-04
Direct 3D是微軟Direct X中的一部分,主要用來開發遊戲產品,屬於閉源產品,只支援Windows平台,優點就是發展快、品質好,目前最新的版本是Direct X 10。OpenGL是和Direct 3D競爭的產品,開源社區的產品,主要用於Linux平台,發展太慢。至於Direct 3D和OpenGL誰好誰壞,實際上完全在於下遊廠商的支援,不過目前看來Direct X要比OpenGL發展的好一些。
Time of Update: 2018-12-04
有兩種前提可以用來構建二叉樹【前提一】根據輸入的(先|中|後)序遍曆序列(空值用#代替)構建二叉樹,如:ab#c#def【前提二】根據輸入的任意兩個遍曆序列來構建二叉樹,如先序abcedfg和中序ecbdfag有兩種方法可以用來構建二叉樹【方法一】遞迴【方法二】非遞迴需要注意並知道的地方先序序列的每個節點其實都是其子樹的根節點中序序列中的每個節點把序列分為左右兩部分,在節點左側的序列為該節點的左子樹,在該節點右側的序列為該節點的右子樹。一些有用的C函數strchr(const char
Time of Update: 2018-12-04
我們奔三的80後,見到親戚朋友,他們不再問你考試考了幾分,更多的是問現在一個月工資多少;我們奔三的80後,每天不再感歎學校有多少作業做不完,開始感歎油價、樓價漲的有多快;我們奔三的80後,不再亂買東西,月底開始算計這個月還了信用卡,還了房貸,還剩下多少錢;我們奔三的80後,漸漸地討厭酒吧、KTV,喜歡親近自然,喜歡健康的生活;我們奔三的80後,偶爾會有寂寞,偶爾會挂念一個人我們奔三的80後,我們開始追逐夢想,不會再輕易流淚,不會再為了一點挫折而放棄;我們奔三的80後,沒有了年少的輕狂,把遇到的挫
Time of Update: 2018-12-04
現在技術的變化真是日新月異,連在手提上都沒有實現的我,卻不得不面對手機上網這個大趨勢,現在有關Web開發,已經很完善了.現有的語言去開發web已經很多了,例如C#,java都可以用,也有很多指令碼語言,比如ASP, ASP.net, JSP, PHP等等,總之,Web網頁是在電腦的瀏覽器上瀏覽的,只要符合HTTP就行,現有的電腦網路瀏覽器也很多,比如IE, Firefox, Navigate等等,但是網頁要在手機上瀏覽,就必須要符合WAP(Wireless Application
Time of Update: 2018-12-04
Time of Update: 2018-12-04
# Bash Shell風格的for迴圈for i in 集合doecho $idone例1:for i in $*#參數$*表示指令碼輸入的所有參數,不包括指令碼本身doecho $idone例2:for i in a b c;do#直接指定迴圈內容,當然do也可以和for寫在一行,不過要用;號隔開echo $idone例3:arr=("a" "b" "c")#Shell中數組的定義以及使用,元素間以空格分開for i in ${arr[@]}#格式為大括弧包著整個數組,注意@doecho $
Time of Update: 2018-12-04
二叉搜尋樹也叫二叉排序樹,它具有以下性質:根節點值大於其左子樹中所有節點的值,小於其右子樹中所有節點的值。所以二叉排序樹的中序遍曆為一個遞增的有序序列。在遇到有關二叉排序樹的演算法時,一定要根據其性質。例如:判斷給定的一個int型數組是不是某二叉排序樹的後序遍曆結果。設後序遍曆結果為ABC,則有A<C<B,因此從根節點(最後一個節點)出發,向前找到所有連續的大於根節點的值作為其右子樹,再往前直到數組的第一個元素,如果都小於根節點,則把它們作為左子樹,然後在分別用同樣的方法遞迴左、右子