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

2021-10-04 19:05:36 字數 2845 閱讀 8636

/*

2020/4/5

c語言實現:手動輸入乙個個單詞

使用二叉樹統計單詞的個數

*/#include

#include

#include

/*使用列舉定義bool型別

*/enum bool

;//此時c語言中enum bool為乙個型別

typedef

enum bool bool;

/*定義樹

*/typedef

struct node

node,

*tree;

void

insert

(tree *root,

char

*word)

//root的指向發生改變需要使用指標void insert(node **root,char *word)if(

strcmp((

*root)

->word,word)

>0)

//搜尋二叉樹,左子樹<=根節點,右子樹》根節點

elseif(

strcmp((

*root)

->word,word)

<0)

else

(*root)

->count++;}

void

preorder

(tree root)

}int

main()

/*bbb 2

aaa 2

ccc 1

*/

//第一次編寫

/*2020/4/6

c語言實現二叉樹進行單詞統計:從標準輸入中輸入單詞

c程式語言(略作改動)

*/#include

#include

#include

#include

#define maxword 100

struct node;/*

獲得單詞或者字元儲存到word中

返回值單詞首字母,eof,非字母字元

*/int

getword

(char

*word,

int lim)

for(

;lim--

;w++)}

*w =

'\0'

;return w[0]

;}struct node*

insert

(struct node* root,

char

* word)

//指標的指向有可能發生改變,可以通過返回值修改

else

return root;

//***************

}void

print

(struct node* root)

}int

main()

}print

(root)

;return0;

}/*in:

a perfect match between a man and a girl

^zout:

a 3and

1between 1

girl 1

man 1

match 1

perfect 1

*//

//第二次編寫 c++

//c++實現

/**/

#include

#include

#include

//strcpy..memset()的標頭檔案

#include

//malloc的標頭檔案

const

int maxword =

100;

typedef

struct node

node,

*tree;

/*單詞:以字母開頭的字母和數字串,如a,aa,aa88均是單詞

將單詞或非空白字元(非字母)讀入到word中

返回值:單詞的首字母、eof、非單詞的單個字元

故可以通過返回值是否為字母判斷該讀取的word是否為單詞

*/int

getword

(char word,

int lim)

/* 確定是單詞

繼續讀取單詞後面的內容

*/for

(; lim--

;w++)}

*w =

'\0'

;return w[0]

;}/*通過不斷的插入節點來構建樹

在此過程中root的指向會發生改變,

一次需要使用引用(在c++中)

*/void

insert

(node*

&root,

char word)

//c++中這裡使用的是引用比較直觀和方便

int cmp =

strcmp

(root-

>word,word);if

(cmp >0)

else

if(cmp ==0)

else}/*

先序遍歷,按照順序從小到大輸出

*/void

preorder

(node* root)

}int

main()

}preorder

(root)

;return0;

}

//這裡就不在另外編寫了,參見另外一篇文章,以題目的形式解決。交叉引用生成器

C語言實現二叉樹

1.c語言實現二叉樹中節點間最大距離 includetypedef struct treenode treenode 我們可以將所有的結點的左右子樹的高度和計算一下,然後取出最大值,就是最遠的距離。int getmaxdistance treenode root,int maxdistance in...

二叉樹(C語言實現)

以下為用c語言實現的二叉排序樹,包含了樹的建立,銷毀,新增,刪除,修改,前 中 後 層序遍歷,深度,密度。include include include define type int typedef struct node node 建立結點 node creat node type data 新...

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

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