資料結構 實驗六(二叉排序樹字元統計)
編寫一個控制檯的工程,程式可以對使用者任意輸入的字串中的字元進行統計,統計出字元、標點、數字出現的次數。根據使用者輸入的字元構建一個二叉排序樹的動態查詢表,key為字元的ACSII碼,count值為該字元出現的次數。
二叉排序樹字元統計原始碼
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define MAX_LENGTH 255
typedef struct BSTreeNode {
char ch;
int count;
struct BSTreeNode* lchild;
struct BSTreeNode* rchild;
}BSTNode;
void CreateBSTree(BSTreeNode*& BT, char ch) {
if (BT == NULL) {
BT = (BSTNode*)malloc(sizeof(BSTNode));
BT->ch = ch;
BT->count = 1;
BT->lchild = BT->rchild = NULL;
}
else if (ch == BT->ch)
BT->count++;
else if (ch < BT->ch)
CreateBSTree(BT->lchild, ch);
else
CreateBSTree(BT->rchild, ch);
}
void InOrderTraverse(BSTNode* BT) {
if (BT != NULL) {
InOrderTraverse(BT->lchild);
printf("%c->[%d]\n", BT->ch, BT->count);
InOrderTraverse(BT->rchild);
}
}
void DestroyBSTree(BSTNode* BT) {
if (BT != NULL) {
DestroyBSTree(BT->lchild);
DestroyBSTree(BT->rchild);
free(BT);
}
}
int main() {
BSTNode* BT = NULL;
int i = 0;
char str[MAX_LENGTH];
printf("請輸入字串:\n");
gets_s(str);
while (str[i] != '\0') {
CreateBSTree(BT, str[i]);
i++;
}
printf("每個字元出現的次數:\n");
InOrderTraverse(BT);
printf("\n");
DestroyBSTree(BT);
return 0;
}
相關文章
- 資料結構實驗六是否同一顆二叉樹資料結構二叉樹
- 重學資料結構(六、樹和二叉樹)資料結構二叉樹
- 資料結構實驗——二叉樹的常見操作資料結構二叉樹
- 資料結構與演算法:二叉排序樹資料結構演算法排序
- 資料結構(樹):二叉樹資料結構二叉樹
- 什麼是泛型?,Set集合,TreeSet集合自然排序和比較器排序,資料結構-二叉樹,資料結構-平衡二叉樹泛型排序資料結構二叉樹
- 資料結構-二叉樹資料結構二叉樹
- 資料結構 - 二叉樹資料結構二叉樹
- 【資料結構】二叉樹!!!資料結構二叉樹
- 資料結構實驗之二叉樹八:(中序後序)求二叉樹的深度資料結構二叉樹
- 資料結構實驗:二叉樹的遍歷(C語言版)資料結構二叉樹C語言
- 資料結構-平衡二叉樹資料結構二叉樹
- 資料結構之「二叉樹」資料結構二叉樹
- 資料結構——平衡二叉樹資料結構二叉樹
- 【資料結構】查詢結構(二叉排序樹、ALV樹、雜湊技術雜湊表)資料結構排序
- 資料結構-二叉搜尋樹的實現資料結構
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- 【資料結構與演算法】二叉排序樹C實現(含完整原始碼)資料結構演算法排序原始碼
- 資料結構——二叉樹進階資料結構二叉樹
- 資料結構-二叉搜尋樹資料結構
- 資料結構 二叉樹遍歷資料結構二叉樹
- 【資料結構】二叉搜尋樹!!!資料結構
- 資料結構分析之二叉樹資料結構二叉樹
- 【資料結構】回顧二叉樹資料結構二叉樹
- 【資料結構】二叉樹(c++)資料結構二叉樹C++
- 資料結構二叉樹學習資料結構二叉樹
- 資料結構-二叉樹、堆、圖資料結構二叉樹
- 利用PHP實現常用的資料結構之二叉樹(小白系列文章六)PHP資料結構二叉樹
- java實現-資料結構之二叉樹(三):線索化二叉樹Java資料結構二叉樹
- 資料結構——樹與二叉樹的遍歷資料結構二叉樹
- 重學資料結構之樹和二叉樹資料結構二叉樹
- [資料結構] 樹、二叉樹、森林的轉換資料結構二叉樹
- 資料結構之二叉搜尋樹—Java實現資料結構Java
- 資料結構系列:Objective-C實現二叉樹資料結構Object二叉樹
- 實戰資料結構(11)_二叉樹的遍歷資料結構二叉樹
- python資料結構之二叉樹的實現Python資料結構二叉樹
- 【資料結構虛擬碼】設計判斷一棵二叉樹是否是二叉排序樹的演算法資料結構二叉樹排序演算法
- 資料結構之「二叉搜尋樹」資料結構