資料結構實驗之查詢三:樹的種類統計
time limit: 400 ms memory limit: 65536 kib
submit statistic discuss
problem description
隨著衛星成像技術的應用,自然資源研究機構可以識別每乙個棵樹的種類。請編寫程式幫助研究人員統計每種樹的數量,計算每種樹佔總數的百分比。
input
輸入一組測試資料。資料的第1行給出乙個正整數n (n <= 100000),n表示樹的數量;隨後n行,每行給出衛星觀測到的一棵樹的種類名稱,樹的名稱是乙個不超過20個字元的字串,字串由英文本母和空格組成,不區分大小寫。
output
按字典序輸出各種樹的種類名稱和它佔的百分比,中間以空格間隔,小數點後保留兩位小數。
sample input
對於這種類似的統計數量並且排序的題目,可以考慮使用二叉排序樹解答,例如在這個題中,每次輸入數名,就是向數中插入的過程,如果查詢到相同的名稱則對應的節點記錄加一,否則就新建節點儲存,這樣最後進行中序遍歷的結果就是最後的排序結果了。
還找到了乙個測試資料,可以參考一下,不過題目要求的精準度不太一樣:題目資料
#include
#include
#include
#include
using
namespace
std;
int n;
string temp;
string t[100005];
struct node;
typedef node *tree;
int ins(tree &t, string tempname)
else
else
}}int inorder(tree t)
}int main()
ins(t, temp);
}inorder(t);
return
0;}
以上~ sdut 二叉排序樹
time limit 1000ms memory limit 65536kb submit statistic discuss problem description 二叉排序樹的定義是 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的...
SDUT 2482 二叉排序樹
這個題也是比較簡單的,但悲催的我忘了把除錯用的 注釋掉,結果錯了幾遍。sad 操作步驟是這樣的 1 對第1個數字序列進行建樹操作,並儲存先序遍歷的結果。2 對後來要比較的數字序列進行建樹操作,並儲存先序遍歷結果。3 比較兩個結果是否相同。以下是 include include include typ...
SDUT 2482 二叉排序樹
time limit 1000ms memory limit 65536k 二叉排序樹的定義是 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。今...