原创 什麼是樹?及相關術語?

樹的定義: 樹是n(n>0)個有限數據元素的集合。當n=0時,稱這棵樹爲空樹。 樹的特點: 1.樹的根結點沒有前驅結點,除根結點之外的所有結點有且只有一個前驅結點。 2.樹中所有結點可以有0個或多個後繼結點 3.樹中沒有封閉的環存在。因爲

原创 什麼是二叉樹?及二叉樹的性質

二叉樹的定義:          二叉樹是個有限元素的集合,該集合或者爲空、或者由一個稱爲根的元素及倆個不相交的、被分別稱爲左子樹和右子樹組成。當集合爲空時,稱爲空二叉樹。在二叉樹中,一個元素又稱作一個結點。        二叉樹是有

原创 C語言實現三子棋

三字棋是C語言學習階段一個有趣的項目,就分享給大家了 #include<stdio.h> #include<stdlib.h> #include<time.h> char a[4][4]={0}; int size= 9; void d

原创 矩陣的實現(矩陣相加)

#include <iostream> using namespace std; class Matrix { private: int rows,columns; //矩陣行數列數 int **element; //動態二維數組

原创 C++之函數模板

一.什麼是函數模板      在介紹函數模板前先看段代碼:   對,就是函數重載,我們知道函數重載基於不同數據類型實現類似操作,那麼如果數據類型比較多的時候怎麼辦呢?只要有新類型出現,就要重新添加對應函數,而且代碼函數體都相同,但代碼複

原创 C++之多態和虛函數

一.什麼是多態         多態與封裝,繼承一起構成了面向對象的3大特性。多態指向不同對象發送同一消息,不同的對象會產生不同的行爲。也就是說每個對象用自己的方式去響應共同的消息。C++有倆中形式的多態。如上課鈴打了,不同班級的同學走向

原创 linux下執行進度條和寫makefile

1.在Linux環境下實現進度條,其原理是:用sleep函數或usleep函數控制每隔多長時間輸出一次,每次輸出字符會比上次輸出字符多一個。 在此代碼中,用\r而不用\n的原因: \n表示換行,即光標移到光標所在行的下一行行首位置處。 \

原创 二維數組的動態存儲(遍歷方陣,求各元素的和)

#define _CRT_SECURE_NO_WARNINGS  #include<iostream> using namespace std; i

原创 C++之順序表

順序表的實現  #define _CRT_SECURE_NO_WARNINGS  #include<iostream> #include<string.h> #include<assert.h> using namespace std;

原创 單鏈表(合併單鏈表)

        鏈式結構由於每個結點只有一個指向直接後繼的指針域,因此當訪問過一個結點後,只能接着訪問它的後繼結點,而無法訪問它的前驅結點,這樣的單項鍊表稱爲單向鏈表。   單鏈表遍歷:         單鏈表遍歷是從單鏈表頭指針head

原创 Linux之task_struct

在linux 中每一個進程都由task_struct 數據結構來定義. task_struct就是我們通常所說的PCB.她是對進程控制的唯一手段也是最有效的手段. 當我們調用fork() 時, 系統會爲我們產生一個task_struct結

原创 vim的配置

簡單的vim配置: 在目錄 /etc/ 下面,有個名爲vimrc的文件,這是系統中公共的vim配置文件,對所有用戶都有效。而在每個用戶的主目錄下,都可以自己建立私有的配置文件,命名爲:“.vimrc”。例如,/root目錄下,通常已經

原创 順序表(約瑟夫環)

          概念:線性表的順序存儲結構稱爲順序表,順序表中的每一種數據類型屬於同構,你要知道第一個數據元素的起始地址,就可以計算出其任一元素的地址  lOC(ai)=Loc(a0)+i*c   其中c=sizeof(T)   1.

原创 llinux學習之find和touch指令

1.a/c/mtime的意義,如何使用touch更改:  .   linux的touch命令不常用,一般在使⽤用make的時候可能會用到,用來修改⽂件時間戳,或者新建一個不存在的文件。而每個文件在linux下面都會記錄許多時間參數,其實是

原创 樹的存儲結構,及鏈表實現

樹的存儲結構:                孩子鏈表:在一顆度爲K的樹中,若一個結點x已有k個孩子,再插入一個結點作爲x的孩子,由於孩子鏈已滿,需要擴充,對於只支持靜態數組的程序設計語言,則不能實現此種情況下的插入操作。C++語言提供動