PTA 7 87 集合的模擬實現(類模板)

2021-10-04 22:26:32 字數 2204 閱讀 3889

我們可以用乙個類來模擬集合及集合運算,add運算用以實現集合元素的增加,delete運算用於實現集合元素的刪除,find運算用以實現集合元素的查詢,但是目前集合元素型別未知,可以是int、char、double等基本資料型別,也可以是string、time、student等物件型別,要求採用類模板實現集合及集合運算,包括集合元素的增加、刪除和查詢的等基本功能。

集合模板類myset包括資料如下:

t data[100];//用陣列來存放所有的集合元素,最多不超過100個元素

int count;//表示目前集合中有多少個元素

包括成員函式如下:

建構函式若干個,集合運算函式如下:

int addset( t elem)

int deleset(t elem)

int findelem(t elem)

其中,addset向集合中新增乙個元素,deleset從集合中刪除乙個元素,findelem判斷elem是否是集合成員,三個函式分別返回元素插入位置,刪除位置和存在位置。

主函式有如下資料成員 :

myset<\int>\ intset;(反斜槓是轉義字元,使用時去掉)

myset<\double>\ douset;

myset<\string>\ strset;

分別是int型別、double型別、string的集合。

完成上述類模板和主函式,主函式根據輸入的資訊,建立初始的三種不同型別的空集合物件,呼叫成員函式分別對intset、douset和strset執行相應的操作,並輸出對應的集合資訊。

輸入格式:

每一行為乙個集合操作,每行的第乙個數字為集合元素型別,1為整型元素,2為浮點型元素,3為string型別,第二個數字為集合操作型別,1為插入,2為刪除,3為查詢,第三個為集合元素,集合元素型別視第乙個數字給定的集合元素型別而定。輸入0時標誌輸入結束。

輸出格式:

輸出當前操作的執行位置(插入位置、刪除位置和存在位置)

刪除操作時,如果元素x不存在,輸出「x is not exist!」。

插入操作時,如果集合已滿,輸出「full set.」若元素已存在,輸出「x is already exist!」

查詢操作時,如果找不到元素,輸出「x is not exist!」。

輸入:1 1 1

1 1 2

1 3 1

1 2 1

1 2 3

1 3 1

2 1 1.1

2 1 2.2

2 1 3.3

2 3 1.1

2 2 2.2

2 2 2.2

3 1 abc

3 1 bcd

3 3 abc

3 2 abc

3 3 abc

輸出:3 is not exist!

1 is not exist!

2.2 is not exist!

abc is not exist!

#include

using

namespace std;

template

<

class

t>

class

myset

intfind

(t elem)

return-1

;}void

findelem

(t elem)

} cout<" is not exist!"

<}void

addset

(t elem)if(

find

(elem)

>=0)

int k=count;

data[count++

]=elem;

cout<}void

deleset

(t elem)

for(

int i=k;i1;i++

) cout

};intmain()

break

;case2:

cin>>type2>>elementd;

switch

(type2)

break

;case3:

cin>>type2>>elements;

switch

(type2)

} cin>>type1;

}}

Pta題目集 7 36 集合相似度 (25 分)

7 36 集合相似度 25 分 給定兩個整數集合,它們的相似度定義為 n c n t 100 其中n c 是兩個集合都有的不相等整數的個數,n t 是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合...

2018 08 28 集合堆疊機(模擬 STL)

描述 中學數學裡集合的元素往往是具體的數字,比如a b 空集 等等。但是要特別注意,集合的元素也可以是另乙個集合,比如說c 即說明c有且僅有乙個元素 空集b,所以稱b是c的子集或者稱b是c的元素都是正確的。所謂乙個集合的勢,就是這個集合的元素個數,一般記為 s 空集的勢為0。在上例中,a 3,b 0...

PTA 天梯賽訓練 L2 005 集合相似度

給定兩個整數集合,它們的相似度定義為 nc n t 100 其中nc是兩個集合都有的不相等整數的個數,n t是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m...