培訓部分
資料結構的概念:
邏輯結構
物理結構
運算結構
幾個常用的資料結構:
堆疊(棧)
佇列鍊錶
二叉樹(有序)
資料結構的分類:
抽象層——邏輯結構(人腦中)
結構層——物理結構(計算機)
實現層——運算結構(應用角度)
邏輯結構的分類:
集合結構(集) - 結構中的元素除了 同屬於乙個集合之外沒有 其他的關係。
線性結構(表) - 結構中的元素 是一對一的前後關係。(重點)
樹型結構(樹) - 結構中的元素 是一對多的父子關係。
網狀結構 - 結構中的元素 是多對多的交叉對映關係。
物理結構的分類:
順序結構 - 資料存放在一片連續的記憶體位址中(不間斷)。
鏈式結構 - 鏈式結構的元素存放在不連續的記憶體位址中,因此儲存時按節點儲存,而不只是儲存資料。乙個節點包括資料和下乙個節點的位址。
優缺點:
順序結構:隨機訪問方便,插入刪除效率低,空間使用率低。
鏈式結構:插入刪除方便,隨機訪問效率低,空間使用率高。
順序結構 鏈式結構 互補。
陣列是乙個常指標,不能改變指向的指標
完全二叉樹 就是 前面n-1 是滿的,最後一層可以不滿,但是要 從左向右 連續排列。
快速排序
void quick_sort(int *a,size_t begin,size_t end)
for(;!( j<=m || p>a[j]);--j);
if(j>m)
}a[m]=p;
if(i-begin>1)
if(end-j>1)
}自學部分
string 和array都是一種容器
容器運用時機
vector
內部結構最簡單,允許隨機訪問
deque
經常在序列頭部和尾部安插和移動元素
list
經常在容器中執行元素的安插,移動和移除
set,multiset
經常需要根據某個準則來搜尋元素
容器內的型別
container::value_type
都支援container::key_type
關聯式容器支援,set,map
container::key_compare
關聯式容器支援
container::value_compare
關聯式容器支援
explicit container::container(const compfunc& op)
以op為準則產生乙個容器
關聯式容器支援
explicit container::container(const container& c)
都支援
explicit container::container(const container& c)
vector,deque,list支援
container::container (size_type num,const t& value)
vector,deque,list,string支援
string不是引用傳值
container::container(inputiterator beg,inputiterator end)
都支援container::container(inputiterator beg,inputiterator end,const compfunc& op)
關聯式容器支援
bool container::empty比 size()==0快
size_type container::capacity() const
返回重新分配前最多元素個數
vector,strin支援
void container::reserve(size_type num)
vector,string支援
count,find,lower_bound,upper_bound,equal_range,key_comp,value_compare
void container::assign(size_type num,const t& value)
關聯式容器支援
void container::assign(inputiterator begin,inputiterator end)
vector,deque,list ,string支援
atvector,deque,string支援
operator
vector,deque,string支援
t& map::operator(const key_type& key)
map支援
front(),back()
vector,deque,list支援
如果容器為空 rend()==rbegin()
iterator container::insert(const t& value)
paircontainer::insert(const t& value)
關聯式容器+string支援
序列式操作一般返回void版本
關聯式操作一般返回 iterator版本
void list::remove 只有list支援
void container::resize(size_type num,t value)
vector,deque,list,string支援
配置器
...迭代器
*iter=42 等同於 iter=42
advance(inputiterator &pos,dist n)
pos前進n
c 培訓周總結3
培訓部分 巨集頭檔案格式 ifndef h h fsd define h h fsd x endif ifdef ifndef elif elif else endif static在當前檔案中有效 結構體指標只開闢乙個指標的空間 c語言的結構體不能包括函式 結構體的記憶體對齊 不足就多分配4k.補...
c 培訓周總結7
培訓部分 unix網路程式設計 socket本身是乙個檔案描述符 socket.h int socket int domain,int type,int protocol 通常情況下protocol是0 domain af inet為網路,af unix為本地 af 後端巨集為pf sock str...
三周C 總結4 函式
如何只遍歷一次陣列,從中找到兩個最小的數.public static void findmin int arr int min1,min2 if arr 0 arr 1 min1 1 min2 0 else arr min1 arr min2 1.c 函式只能在某個類中定義,函式不能巢狀定義即在某個...