Time of Update: 2018-12-05
雙端鏈表與傳統鏈表十分近似,唯一的差別就是,頭結點多了一個last引用指向鏈表的末端。因此,可以在鏈表尾端添加結點。在鏈表頭和尾端添加結點,所花時間都是O(1)。而刪除結點的話,鏈表頭為O(1),鏈表尾為O(N)。 刪除鏈表尾結點所花時間為O(N)的原因:刪除第N個結點,第N-1個結點的next需要指向null,所以需要找到N-1結點,此操作所花的時間為O(N)。為瞭解決這個問題,本章的後面會引入雙向鏈表。注意區別“雙向鏈表”和“雙端鏈表”。
Time of Update: 2018-12-05
今天看了抽象資料類型ADT的定義,及其簡單的應用,旨在把具體的東西抽象化,有點類似於JAVA中介面的概念。 主要還是學了有序鏈表。所謂有序鏈表,顧名思義,就是鏈表的按序插入,其與普通鏈表不同之處,就在於有序。有序鏈表的應用:頻繁地存取最小(或大)項,且不需要快速的插入,例如優先順序隊列。 表插入排序,有序鏈表的排序方式,相比較數組O(N)移動而言,只需要O(N)次移動。
Time of Update: 2018-12-05
雙向鏈表與雙端鏈表是不同的概念。 雙端鏈表是指,鏈表的頭結點,不僅有指向第一個結點的first,同時也有指向最後一個結點的last。而雙向鏈表是指,鏈表不僅可以從前往後遍曆,也可以又後向前遍曆。雙向鏈表也可以是雙端的,若不是的話,每次需要last時,則先由first依此遍曆,直到最後一個結點。 雙端鏈表的應用:如一個寫字板程式,當需要backspace時,就需要逆向刪除。
Time of Update: 2018-12-05
我目前在開發一個應用,同一個view顯示在兩個不同的視窗上,如果view是單獨的一個靜態內容的好辦,但這個view不是,還有很多使用者操作的功能。在cocoa,單獨一個view有且只有一個parent
Time of Update: 2018-12-05
希爾排序的方法:public void shellSort(){ int inner,outer; long temp; int h = 1; while(h<=nElems/3){ h = 3*h+1; } while(h>0){ for(outer = h;outer<nElems;outer++){ inner =
Time of Update: 2018-12-05
ATM的外圍裝置包括讀卡機,密碼鍵盤,流水印表機等, 通過串口和ATM的主機互動, 實現主機和外圍裝置的通訊功能的程式叫"驅動庫", 而使用者看到的ATM機器的螢幕裡的軟體是應用程式層. 應用程式層調用驅動庫來實現ATM的諸多功能.這種模式的項目在分工的問題上,常常出現這種情況:一些功能是放在應用程式層還是放在驅動層? 公司的開發人員會圍繞這些問題 爭得面紅耳赤.其實, 驅動層只需要實現簡單的操作,比如硬體的初始化, 發送資料, 關閉硬體,
Time of Update: 2018-12-05
先作如下假設:1、有數組代替優先順序隊列物件類型 2、數值越小,優先順序別越高 3、插入排序,刪除快速 My Code: public void insert(int input){ if(this.isFull()){ System.out.println("Error:The queue has been full."); System.exit(-
Time of Update: 2018-12-05
今天,在論壇上,看到一個求助解釋遞迴代碼的問題。這不由使我想起自己半年前,學習遞迴演算法的痛苦。在此,我以一個簡單的例子,通過數學歸納法,來解釋遞迴的基本原理。希望能給正在學習遞迴的人,得以啟發,有以協助。 求:1+2+3+...100的和(這沒必要用遞迴,只是舉個簡單例子,希望能解釋清楚遞迴) 遞迴就是類似於數學歸納法。 令sum(n)表示1+2+3+...+n(n>0) 則sum(1) = 1,sum(n)=sum(n-1)+n
Time of Update: 2018-12-05
最近部門需要在軟體中加入dwg檔案的瀏覽,這就涉及到dwg至bmp的格式轉換。剛開始,一塌糊塗,還想用ObjectArx來實現。經過一番研究,ObjectArx只是Autocad的功能擴充的開發工具,不能脫離autocad環境。首先要澄清一個概念:Autocad的二次開發分兩類的, 一,Autocad軟體的功能擴充,比如畫一些非常複雜的圖形,控制項只能在Autocad軟體環境中使用;
Time of Update: 2018-12-05
今天下午,學習了單鏈表的資料結構。單鏈表的資料結構,有頭結點和結點構成。頭結點只有一個引用指向下一個結點,有點類似於指標。在刪除的時候,頭結點的處理,會有些麻煩。但如果理解了鏈表的結構,並且畫上一個結構圖,就會簡單許多。 感覺鏈表的資料結構,比之前的棧和隊列,又複雜了一些。還有後面的遞迴、進階排序、二叉樹等等複雜結構在等著我。可資料結構與演算法,是編程的靈魂,一定要打下紮實的基礎才行。 自己給自己打氣。加油!!!!!!
Time of Update: 2018-12-05
推薦} 39個優秀網頁按鈕設計PSD檔案下載 每一個網站,不管是菜單,連結,下載等等。都離不開各式不同的按鈕。今天向大家介紹39個非常優秀的案例,其包有包括PSD檔案的。內容豐富多樣,按鈕的設計也極具富有穿透力和感染力,不可多得的資源,所以當阿薩一看到的時候,立馬轉載到我的部落格,分享給你們。1. WEB UI Treasure Chest v 1.0 by ArtDesigner.lvThis is really one huge treasure chest with more than 1
Time of Update: 2018-12-05
所謂變位字,就是任意給定一個字串,比如"cat",產生出其全排列:"cat" "cta" "atc" "act" "tca" "tac"。這個問題有這樣一種解決方案:假設有單詞有n個字母。(並且假設字母均不相同) 1、全排列最右邊的n-1個字母 2、輪換所有的n個字母 3、重複以上步驟n次 之後,我參考這個,再看書上的小程式,最後又自己動手重編了一遍,這其中還遇到了不少問題。我想,如果要我設計類似的演算法,可能就更加困難了吧。
Time of Update: 2018-12-05
-1L的類型是long int,1U的類型是unsigned int。當進行比較時,會有一個隱式的類型轉換。在C中,當一個變數是long int 時,如果long int 的取值範圍能覆蓋unsigned int 的時候,unsigned int 的變數被轉換成long int ;如果long int 的取值範圍不能覆蓋unsigned int 時,兩個變數同時被轉換成unsigned long。在這裡,假設int是16位的,而long int 是32位的,這時,long int
Time of Update: 2018-12-05
歸併排序,就是把需要排序的數組(也可以是鏈表或者其他資料結構),分成更小的數組,進行歸併排序,直到更小的數組為一個數值時返回。概括地說,歸併排序分為下面四步: 1、判斷是否為單一數值,如是,返回。 2、把需要歸併排序的對象分為兩個更小的單元。 3、更小的前一單元、後一單元分別歸併排序。 4、合并3中的兩個單元。
Time of Update: 2018-12-05
有的同學在做作業的過程中可能出現程式在自己的電腦上運行正常而提交到評測系統後則出現錯誤的情況。評測系統採用的是VC6.0的cl.exe進行編譯,同學們可以在自己的電腦下通過命令列的方式來編譯並運行程式,就能確保在評測系統下也是能正常啟動並執行。具體做法如下:(1)
Time of Update: 2018-12-05
Windows有很多連接埠是開放的,在你上網的時候,網路病毒和駭客可以通過這些連接埠連上你的電腦。為了讓你的系統變為銅牆鐵壁,應該封閉這些連接埠,主要有:TCP 135、139、445、593、1025 連接埠和 UDP 135、137、138、445 連接埠,一些流行病毒的後門連接埠(如 TCP 2745、3127、6129 連接埠),以及遠程服務訪問連接埠3389。下面介紹如何在WinXP/2000/2003下關閉這些網路連接埠: 第一步,點擊“開始”菜單/
Time of Update: 2018-12-05
RSA演算法非常簡單,概述如下: 找兩素數p和q 取n=p*q 取t=(p-1)*(q-1) 取任何一個數e,要求滿足e<t並且e與t互素(就是最大公因數為1) 取d*e%t==1 這樣最終得到三個數: n d e 設訊息為數M (M <n) 設c=(M**d)%n就得到了加密後的訊息c 設m=(c**e)%n則 m == M,從而完成對c的解密。 註:**表示次方,上面兩式中的d和e可以互換。 在對稱式加密中: n d兩個數構成公開金鑰,可以告訴別人; n e兩個數構成私密金鑰,
Time of Update: 2018-12-05
線程同步之事件Event的理解Event 是 一個訊號. 形像的理解Event方法.比如一個洗手間,任一時刻只有一個人可以使用, 洗手間門口有一盞燈, 當有人進入洗手間並關上門的時候, 門口的燈就滅了, 當洗手間裡面的人開啟門出來的時候, 門口的燈就亮了,方便人們找到空的洗手間.Event是一盞燈.CreateEvent()安裝一盞燈.SetEvent()是開啟燈. 表示洗手間裡沒有人.ReleaseEvent()是關了燈.
Time of Update: 2018-12-05
最近公司的一個項目需要用到CPropertySheet ,UI設計很漂亮,沒有CPropertySheet 專屬的分隔線。CPropertySheet 沒有提供直接的函數或屬性來隱藏分割線。經過一番研究,分割線是CStatic類型,可以利用函數ChildWindowFromPoint 取得分隔線的CWnd指標。在OnMouseMove中獲得分隔線所在矩形中的一點位置POINT. 注意,需要精確,否則會把視窗隱藏了。 POINT pt; pt.x = 75; pt.y = 291; CWnd*
Time of Update: 2018-12-05
【配置屬性】——>【建置事件】——>【產生後事件】中的命令列command line 設定的作用很方便使用連結庫的項目,比如一個項目依賴於另一個項目的組建檔案dll LIB 等檔案,那麼可以在另一個項目編譯成功後把檔案拷貝到指定的目錄。 給例子:set COPYCMD=/Yecho Updating ..\dfu\debug\DFUEngine.dllif not exist ..\dfu\debug mkdir ..\dfu\debugxcopy /D