寫了乙個字典樹

2022-04-05 11:55:06 字數 3239 閱讀 6916

上星期寫了乙個鍊錶,寫的很艱難,跌跌絆絆。昨天我又試著寫了乙個單詞樹。這次順手多了,沒遇到什麼問題,非常順利,我也放棄了自定義結構體型別的寫法。將每一處結構體都用struct 寫。

可能**不是非常簡潔高效,但是,目前測試功能正常。以後我會慢慢改進學習的。下面是完整**。我準備放到我的期末作業裡面用。

小愉悅,昨天晚上寫著太高興,半夜又爬起來修復了幾個bug,今早測試,「完美!"

各項測試正常。。。。開心,這樣也不枉我數學掛科了。。。。

#include #include 

#include

#include

#include

#include

#define enterandcheck while ( ( (c = getchar() ) == ' ') && c != '\n' )

intsamewords;

enum dowhat ;

struct wtree* word_tree_insert(char *str,char *exp,struct wtree *pt);

struct wtree* word_tree_search(char *str,struct wtree *pt);

bool word_tree_delete(char *str,struct wtree *pt);

bool word_tree_child_enum(struct wtree*pt);

int alpcompare(const

char a,const

char

b);struct wtree*creatchild();

struct

wtree

;struct wtree defstr = ,false,null} ;

struct wtree root = ,false,null};

intmain()

char sear[20

];

while (i<8

)

else

i++;

}while (i<10

)

while(i < 13

)

else

};}bool word_tree_delete(char *str,struct wtree *pt)

else

if(alpcompare((pt->child[i])->c,str[len - 1]) < 0) /*

*** a < b **/

else

if (alpcompare((pt->child[i])->c,str[len - 1]) == 0

)

break

; }

else

} else

if (alpcompare((pt->child[i])->c,str[len - 1]) > 0

)

}if (!word_tree_child_enum(pt->child[i])) /*

***無用節點刪除 **

*/ pt->child[templen1 - 1] =null;

}return

true;

}bool word_tree_child_enum(struct wtree*pt)

else

}return

false;

}}struct wtree* word_tree_search(char *str,struct wtree *pt)

else

if (alpcompare((pt->child[i])->c,str[len - 1]) < 0) /*

*** a < b **/

else

if (alpcompare((pt->child[i])->c,str[len - 1]) == 0

)

else

} else

if (alpcompare((pt->child[i])->c,str[len - 1]) > 0

)

}}struct wtree* word_tree_insert(char *str,char *exp,struct wtree *pt)

else

} else

if (alpcompare((pt->child[i])->c,str[len - 1]) < 0) /*

*** a < b **/

else

if (alpcompare((pt->child[i])->c,str[len - 1]) == 0

)

else

} else

if (alpcompare((pt->child[i])->c,str[len - 1]) > 0

)

pt->child[i] =creatchild();

(pt->child[i])->c = str[len - 1

]; str[len - 1] = '\0'

;

if (len == 1

)

else}}

}struct wtree*creatchild()

*p =defstr;

returnp;}

int alpcompare(const

char a,const

charb)

else

if (a > b) /*

**** a islower ********/

else

if (a else

if (a ==b)

} else

if (toupper(a) !=toupper(b))

}int exchange(char

str)

else

}}

安迪的第乙個字典

問題描述 輸入乙個文字,找出所有不同的單詞 連續的字母序列 按字典序從小到大輸出,單詞不區分大小寫。沒有太多技巧,注意stringstream和set的用法即可 vs2012執行通過 10815.cpp 定義控制台應用程式的入口點。include stdafx.h include include i...

乙個字面常量

c 有兩種常數 文字,符號。常量字面值常量文字數字插入 他們是常數,因為你不能改變他們的價值觀。1int x 5 5是乙個字面常量 常量可以字尾,確定其型別。整數常量可以有乙個u或u字尾,意味著他們是無符號的。整數常量也可以有乙個l或者l字尾,這意味著他們是長整數。然而,這些字尾通常是可選的,因為編...

python 乙個單列表和乙個字典元素的列表合併

python 乙個單列表和乙個字典元素的列表合併,組成乙個新列表 by coco 20160106 舉例 a 1,2,3,4 b 組合後的新列表為 c 如下 a 1 2 3 4 b defexpand list 1 b,a expand list 1,tmp list tmp list dict i...