C 每日一練(類模板 樹)

2021-07-22 22:08:05 字數 1865 閱讀 9355

1.類模板的定義及使用

2.樹的基本術語

使用類模板使使用者可以為類定義一種模式,使得類中的某些資料成員、某些成員函式的引數、某些成員函式的返回值能取任意型別。類模板是對一批僅僅成員資料型別不同的類的抽象,程式設計師只要為這一批類所組成的整個類家族建立乙個類模板,給出一套程式**,就可以用來生成多種具體的類,(這類可以看作是類模板的例項),從而大大提高程式設計的效率。

1. 定義類模板的一般形式是:

template 《型別名 引數名1,型別名 引數名2,…>

class 類名

; 例如,template class smemory

2. 參考**

#include 

#include

using

namespace

std;

const

int size= 8;

template

class smemory //定義類模板smemory

void mput(t x); //mput()函式的引數x的型別是t

t mget(); //宣告返回值型別為t的成員函式mget()

};template

void smemory:: mput(t x) //定義成員函式mput(),函式的引數型別為t,該函式用於為資料成員 data陣列的各個元素賦值

data[count] = x;

count++;

}template

t smemory:: mget() //定義成員函式mget(),函式的返回型別為t,該函式用於取出資料成員 data陣列的各個元素

count--;

return data[count];

}int main()

cout

<< "get mol =>";

for (i = 0; i < 8; i++)

cout

<< mo1.mget();

cout

<< "\nget mo2 => ";

for (i = 0; i < 8; i++)

cout

<< mo2.mget(); //呼叫成員函式mget()

system("pause");

}

1)結點的度(degree):結點的子樹個數;

2)樹的度:樹的所有結點中最大的度數;

3)葉結點(leaf):度為0的結點;

4)父結點(parent):有子樹的結點是其子樹的根節點的父結點;

5)子結點/孩子結點(child):若a結點是b結點的父結點,則稱b結點是a結點的子結點;

6)兄弟結點(sibling):具有同乙個父結點的各結點彼此是兄弟結點;

路徑和路徑長度:從結點n1到nk的路徑為乙個結點序列n1,n2,…,nk。ni是ni+1的父結點。路徑所包含邊的個數為路徑的長度;

7)祖先結點(ancestor):沿樹根到某一結點路徑上的所有結點都是這個結點的祖先結點;

8)子孫結點(descendant):某一結點的子樹中的所有結點是這個結點的子孫;

9)結點的層次(level):規定根結點在1層,其他任一結點的層數是其父結點的層數加1;

10)樹的深度(depth):樹中所有結點中的最大層次是這棵樹的深度;

面試中的二叉樹題目

9/20/2016 4:41:25 pm

C 每日一練(this指標 函式模板)

1.this指標的理解 2.函式模板的定義和使用 要理解this指標,先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。雖然比int char這樣build in型別複雜的多,但首先要理解它們一樣是型別 用這個型別可以來宣告乙個變數,比如int x...

C 每日一練(STL Queue)

queue 佇列 queue 是乙個容器介面卡 container adaptor 型別,被特別設計用來執行於fifo first in first out 場景,在該場景中,只能從容器一端新增 insert 元素,而在另一端提取 extract 元素。1 有何用?queue 提供了一系列成員函式用...

C 每日一練(STL Bitset)

一 今日課題 bitset 二 實戰演練 c 語言的乙個類庫,用來方便地管理一系列的bit位而不用程式設計師自己來寫 1 有何用?有些程式要處理二進位制位的有序集,每個位可能包含的是0 關 或1 開 的值。位是用來儲存一組項或條件的yes no資訊 有時也稱標誌 的簡潔方法。標準庫提供了bitset...