SDUT 樹的種類統計(二叉排序樹應用)

2021-08-19 21:31:29 字數 1014 閱讀 8727

資料結構實驗之查詢三:樹的種類統計

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 二叉排序樹的定義是 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。今...