二叉樹實現單詞統計及排序(c 版)

2022-09-09 16:33:26 字數 1178 閱讀 6019

這是物件導向程式設計實驗任務中的一道題

題目要求是這樣的:

本題是關於二叉樹的應用題。二叉樹的結點型別(tnode)已經給出,其中 left和right分別指向當前結點的左孩子和右孩子(這是樹結點的構成要素),word和count用於儲存應用資料,分別儲存乙個單詞的文字、該單詞在輸入**現的次數,這就意味著不同結點中儲存的 word 值不能相同。

如果你對二叉樹操作比較熟練,這題肯定不難。不過來看這篇部落格的我覺得對於二叉樹的認識總是有些不夠的。這裡通過我對這道題的求解,可以一起學習。

首先我們知道需要建立資料物件,包括左右指標,包含字串物件,包含整型變數名統計單詞數。

struct tnoded

;

然後這裡最關鍵的就是如何進行輸入,輸入後如何存放的問題。

在這裡我們用這樣乙個思路,先將第乙個單詞放入第乙個節點。後續輸入的單詞與當前節點單詞進行比較,比它大放到右邊,比他小放在左邊。先貼上**,注釋放在**裡面。

void

input_new_word

(tnoded * pt)

else

}else

if(new_word-

>word.

compare

(pd-

>word)==0

)else

if(new_word-

>word.

compare

(pd-

>word)

>0)

else}}

}while

(cin >>a)

;//這種方法通用可以控制輸入結束標誌,最後ctrl+z輸入結束

}

在上面的**中,有幾點值得學習,while控制迴圈結束,compare函式的使用,以及如何將單詞存入

//**中序遍歷輸出**

//這裡輸出使用遞迴,自己看,書上**上很多,也不是很難理解

void

inorger_output

(tnoded *t)

}

最後就是乙個main函式了

int

main()

最後你只需要將**拼接起來就可以了。分開放完全是為了做一些解釋。

給個贊吧!謝謝!

二叉樹統計單詞個數(二叉搜尋樹實現及模板)

2018.1.20更新。二叉搜尋樹是一種,昂,很厲害的資料結構。下面是大一上學期學c語言的 來自應該燒香供著的聖經 c程式語言 裡面有加節點和列印樹的操作,freetree是我當時自己寫的。本來我現在更新應該加個deletetree來著,但是有點懶。姑且寫一下刪除的演算法,就不實現了。後面有c 模板...

C C 語言實現二叉樹統計單詞

2020 4 5 c語言實現 手動輸入乙個個單詞 使用二叉樹統計單詞的個數 include include include 使用列舉定義bool型別 enum bool 此時c語言中enum bool為乙個型別 typedef enum bool bool 定義樹 typedef struct no...

c 實現堆排序 及二叉樹操作

include using namespace std if 0 void heapadjust int array,int size,int parent if array parent array child else return 堆排序 void heapsort int array,int...