5 24 樹種統計 二叉搜尋樹

2021-08-06 05:19:32 字數 1917 閱讀 2688

5-24 樹種統計 (25分)

隨著衛星成像技術的應用,自然資源研究機構可以識別每一棵樹的種類。請編寫程式幫助研究人員統計每種樹的數量,計算每種樹佔總數的百分比。

輸入格式:

輸入首先給出正整數n(\le 10^5≤10

​5 ​​ ),隨後n行,每行給出衛星觀測到的一棵樹的種類名稱。種類名稱由不超過30個英文本母和空格組成(大小寫不區分)。

輸出格式:

按字典序遞增輸出各種樹的種類名稱及其所佔總數的百分比,其間以空格分隔,保留小數點後4位。

輸入樣例:

29 red alder

ash

aspen

basswood

ash

beech

yellow birch

ash

cherry

cottonwood

ash

cypress

red elm

gum

hackberry

white oak

hickory

pecan

hard maple

white oak

soft maple

red oak

red oak

white oak

poplan

sassafras

sycamore

black walnut

willow

輸出樣例:

ash 13.7931%

aspen 3.4483%

basswood 3.4483%

beech 3.4483%

black walnut 3.4483%

cherry 3.4483%

cottonwood 3.4483%

cypress 3.4483%

gum 3.4483%

hackberry 3.4483%

hard maple 3.4483%

hickory 3.4483%

pecan 3.4483%

poplan 3.4483%

red alder 3.4483%

red elm 3.4483%

red oak 6.8966%

sassafras 3.4483%

soft maple 3.4483%

sycamore 3.4483%

white oak 10.3448%

willow 3.4483%

yellow birch 3.4483%

比賽的時候,在這道題目上卡了太久了,我覺得主要原因是,我自己沒有認真讀題,有些時候,閱讀題目也是一門技術。隊友一直在說,排序不太對,一直在找,後來我也幫忙找,連大小寫都轉換了(真的是在錯誤的道路上越走越遠~),我一直沒有仔細看題,後來,還是隊友先發現了,輸出的時候,是中序遍歷,不是先序遍歷~~~~

#include 

struct node

;int n;

struct node *creat(struct node * bt, char a)

else

if(strcmp(bt->data, a)<0)

bt->right = creat(bt->right, a);

else

if(strcmp(bt->data, a)>0)

bt->left = creat(bt->left, a);

else

bt->ans++;//個數增加

return bt;

}void mid(struct node * bt)//中序遍歷,真的很重要~

}int main()

(map或二叉搜尋樹)樹種統計

隨著衛星成像技術的應用,自然資源研究機構可以識別每一棵樹的種類。請編寫程式幫助研究人員統計每種樹的數量,計算每種樹佔總數的百分比。輸入首先給出正整數n 隨後n行,每行給出衛星觀測到的一棵樹的種類名稱。種類名稱由不超過30個英文本母和空格組成 大小寫不區分 按字典序遞增輸出各種樹的種類名稱及其所佔總數...

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...