/*
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 模板...