樹是一種非線性資料結構,樹有根節點,子樹等概念。二叉樹(Binary Tree):每個節點最多有兩顆子樹,並且子樹有左右之分。概念:樹的深度,滿二叉樹,完全二叉樹,樹的節點樹二叉樹包括順序儲存和鏈式儲存,這裡只說鏈式儲存。二叉樹的每個節點和雙鏈表有些類似,但是樹的結構要比雙鏈表複雜,在構造樹的過程中涉及到遞迴調用的問題,遞迴的問題往往是很複雜的問題,因此,這裡單獨說二叉樹的構建。國際慣例,先上代碼: 1 #include<stdio.h> 2
1.準備使用MPI做並行計算時,根據程式的具體要求,可按任務進行分配或資料進行分配。根據矩陣乘積的特點,這裡按資料進行分配,即每個電腦節點計算不同的資料,由於矩陣資料的特點,這裡按行進行資料分塊。因為本人使用的是C語言,數組在C語言的表示下行間資料地址是連續的(註:若是Fortran語言,則列是連續的)。2.mpi程式的架構mpi程式運行是靠輸入dos命令執行的,因此,mpi程式一般都在main函數內,也即程式入口函數中。一般都會有MPI_Init、MPI_Comm_rank、MPI_Comm_
如何從其他渠道獲得反饋習慣19:守護天使敏捷就是管理變化的,為了應對代碼的變化,你需要持續獲得代碼健康狀態的反饋。帶上守護天使,自動化單元測試。敏捷式的單元測試,用代碼來進行測試,可以選擇一個標準的測試架構,來協助完成簡單的便攜與測試工作。單元測試是最受歡迎的一種敏捷實踐,推薦《單元測試之道》。單元測還是可以很好的學習API。習慣20:先用它在實現它編寫之前,先寫測試。將TDD(Test Driven
隊列:先進先出的線性表,它只允許在一端(隊尾)進行插入操作,在另一端(隊首)進行刪除操作。與棧的插入和刪除都在棧頂進行不同。這裡只說隊列的鏈式儲存。國際慣例,先上源碼 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //定義隊列 6 typedef struct node{ 7 int data; 8 struct node *next; 9
近期做個捷徑功能表,需要調用外部.exe應用程式。調用外部應用程式時分為阻塞和非阻塞,這裡採用非阻塞,因為想調用哪個程式就調用哪個程式嘛。方法如下:使用Qprocess的startDetached()方法,當前程式關閉時,調用的外部程式能夠照常運行。#include
系統安裝Ubuntu後,給Ubuntu的分區不夠大,Google了一下Ubuntu系統的清理磁碟空間。提示 1:清理殘餘的設定檔 一般而言,當我們從 Ubuntu 系統中刪除了一個軟體之後,該軟體的殘餘設定檔並沒有被刪除。如果你確信以後不再使用該軟體,那麼保留其設定檔實在沒有必要,所以我們大可一併刪除之。要刪除某個軟體的殘餘設定檔,可以執行下面的操作:在終端中執行 sudo synaptic,以便啟動 Synaptic 包管理工具。點擊 Synaptic 右下角的 Status
詳情參見mpi官方使用者文檔:http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.4.1-userguide.pdf本文主要講解MPI程式啟動並執行命令和運行MPI程式需要注意的額事項。首先,將MPI安裝目錄下的bin目錄添加到系統內容變數path下。使用mpiexec運行程式方法1:快速執行mpi程式在終端下輸入如下命令:mpiexec -n 3
Qt繪圖要用到QPainter類,繪圖的裝置通常是主組件,也可以是QLabel組件或QTextEdit組件,通過一定的演算法實現可以繪製出很漂亮的圖形或我們需要的圖形。繪製時需要先定義一個QPainter類對象,繪製可以選擇的道具可以使Qpen(畫筆)、QBrush(畫刷)。使用QPen寫文本時還可以指定字型(QFont類)如下面一段代碼:QPanter painter;QPen pen;pen.setColor(QColor(255,0,0));
代碼如下: 1 //使用非遞迴,通過歸納驗證總結出規律,枚舉處元素個數 2 int64 f_n(int64 m,int64 n) 3 { 4 int64 a[m][n]; 5 int i,j; 6 for(i=0;i<n;i++) 7 { 8 a[0][i]=i+1;//每列第一個元素 9 }10 for(i=0;i<m;i++)11 {12 a[i][0]=i+1;//每行第一個元素13
前面寫了用GDAL讀取資料集和波段資訊,使用GDAL最重要的就是讀取映像的波段資料,因為對映像的處理就是對資料(也可以說是像素點)的處理。這裡討論下gdal讀取波段資料。參考文章:http://www.gdal.org/gdal_tutorial.html這裡有個中文翻譯版,翻譯的還是可以的:http://opencv-extension-library.googlecode.com/svn/doc/gdal-doc/gdal_tutorial.html讀取波段資料gdal讀取波段資料的介面為R
Qt中實現樹形結構可以使用QTreeWidget類,也可以使用QTreeView類,QTreeWidget繼承自QTreeView類。樹形效果如所示:這是怎麼實現的呢?還有點擊節點時會有相應的事件響應。1. 樹形結構實現QT
對話方塊在Qt GUI應用程式中有著廣泛的用途,對話方塊有模態、非模態兩種情況。對於參數選擇的對話方塊,一般用模態對話方塊;對於顯示或查看某些內容的對話方塊,一般用非模態對話方塊。對話方塊類QDialog,官方文檔:http://qt-project.org/doc/qt-4.8/qdialog.html1. 模態對話方塊模態對話方塊通過調用exec()函數實現,使用模態對話方塊時,事件就在對話方塊內部迴圈,必須將對話方塊關閉才能繼續執行主介面的操作。需要注意的是,關閉模態對話方塊時,exec(
構造和使用二叉樹後,將二叉樹的釋放,需要將儲存二叉樹節點的記憶體空間釋放掉,最後將二叉樹置NULL。根據前面一篇文章中二叉樹的遍曆可以得到啟示,遍曆是將節點資料元素找出來,同樣利用便利的思想,也可以將節點指向的記憶體空間釋放掉。這裡需要注意的問題時,釋放的先後問題,根節點必須在左子樹和右子樹的後面釋放,因此,利用後續遍曆的方法可以釋放掉二叉樹中多有節點的儲存空間。如下代碼: 1 /釋放二叉樹的記憶體空間,將二叉樹置空 2 void BTreeSetNull(BTree *tree) 3 { 4
喇叭聲音還行,可是工作中不能開著喇叭把,在聲音輸出喜好設定中將連接器選擇為“Anolog Headphones”時,即只有耳機輸出,這時耳機聽到的聲音很小,將輸出音量調到很大都不起什麼效果。網上找了一圈,總算解決了,如下再終端輸入alsamixer,按斷行符號,出現如音效卡設定選項這裡,Front這個參數最開始是0,將它增大後聲音就大了,最好把它調到最大(用向上的箭頭)。按意思Front應該是前端放大器,最開始是0,聲音沒有放大,難怪用耳機輸出時聲音小的很。Front
VC6.0工程在編譯時間由於設定問題有時不會產生release版本,只有debug版本。解決犯非法如下:工程——設定,將Setting for後面的選項改為Win32 Release。然後重新編譯。如果用此方法仍然沒有產生release,而且開啟設定時,依然是Win32 Debug,這時,在VC6.0的工具列上點擊右鍵,選擇Build,同時去掉Build MiniBar,這時會出現debug的快捷工具列,在工具列上選擇Win32 Release,再重新編譯,就會產生Release的版本了。
前面一篇文章單獨說了二叉樹的構建,二叉樹構建好後,接下來就有二叉樹的遍曆問題,即讀出二叉樹中所有的節點資料。三種遍曆方法:前序走訪,中序遍曆,後序遍曆。前序走訪:先訪問根節點,然後前序走訪左子樹,最後前序走訪右子樹中序遍曆:先中序遍曆左子樹,然後訪問根節點,最後中序遍曆右子樹後續遍曆:先後序遍曆左子樹,然後後序遍曆右子樹,最後訪問根節點由上面的遍曆步驟可以看出三者的差別就是根節點訪問順序的不同。如果將遞迴方式構建二叉樹的過程理清楚了,那麼二叉樹的遍曆問題就比較容易理解。這裡使用最容易理解的遞迴方
原文地址:http://blog.csdn.net/qazplm12_3/article/details/56497411。電腦的峰值為主頻x4。2。電腦讀取數組時,一次會讀入一行,要最大限度的利用已讀入的資料,減少頻繁讀寫的次數。3。多線程記憶體共用,多進程需要訊息傳遞來交換變數。4。利用管道在不同程式之間傳遞內容(可以是管道符|或mkfifo mypipe)5。平均不同節點的計算量,盡量做到Server Load
1.幾個概念:隨機數:數學上產生的都是偽隨機數,真正的隨機數使用物理方法產生的隨機數種子:隨機數的產生是由算術規則產生的,srand(seed)的隨機數種子不同,rand()的隨機數值就不同,倘若每次的隨機數種子一樣,則rand()的值就一樣。所以要產生隨機數,則srand(seed)的隨機數種子必須也要隨機的。2.srand()產生隨機數種子原型:void srand ( unsigned int seed
在Qt程式中,如果要開啟指定網站或系統中的檔案夾,可以使用QDesktopServices類的openUrl方法。詳見http://qt-project.org/doc/qt-4.8/qdesktopservices.html比如要開啟Qt開發社區,如下:1 #include <QDesktopServices>2 #include <QUrl>3 4
指標是一柄雙刃劍,用得好所向披靡,用得不好搬石頭砸自己的腳。使用指標時尤其要注意,稍有不慎就會讓程式崩潰,根據自己的學習使用即碰到的問題總結於下,只是個人見解,當然只是一葉障目,指標的博大精深還有待我去發掘。1.定義指標後要將其初始化所謂的初始化就是將指標指向具體的位置,若指標不指向任何位置就賦為NULL,不能讓指標為一個野指標。如下int *p;p=NULL ;