題目描述;
設計乙個支援以下兩種操作的資料結構:
void addword(word)
bool search(word)
search(word) 可以搜尋文字或正規表示式字串,字串只包含字母 . 或 a-z 。 . 可以表示任何乙個字母。
示例:addword(「bad」)
addword(「dad」)
addword(「mad」)
search(「pad」) -> false
search(「bad」) -> true
search(".ad") -> true
search(「b…」) -> true
說明:你可以假設所有單詞都是由小寫字母 a-z 組成的。
class mytree
mytree tree ;
public worddictionary()
public void addword(string word)
node = node.child[tem - 'a'];
} node.isend = true;
}public boolean search(string word)
public boolean search(string word,mytree node,int index)
if(index == word.length())
char tem = word.charat(index);
if(tem == '.')}}
return false;
}else else
} }}
211 新增與搜尋單詞 資料結構設計
題目描述 如果資料結構中有任何與word匹配的字串,則bool search word 返回true,否則返回false。單詞可能包含點 點可以與任何字母匹配的地方。請你設計乙個資料結構,支援 新增新單詞 和 查詢字串是否與任何先前新增的字串匹配 實現詞典類 worddictionary wordd...
搜尋與資料結構
最簡單的搜尋當然分為兩種,深度優先搜尋和廣度優先搜尋。這兩種演算法分別採用了棧和佇列的資料結構來實現。對於深搜,優化方法通常是各種剪枝,主要包括最優化剪枝和可行性剪枝。對於廣搜,優化方式通常是進行重複去除和優先搜尋。通常都說能用深搜不用廣搜,其實在一定條件下確實有道理。在很多情況下,深度優先搜尋通常...
資料結構與演算法 搜尋
搜尋是在乙個專案集合中找到乙個特定專案的演算法過程,返回乙個布林值。搜尋的幾種常見方法 順序查詢 二分法查詢 二叉樹查詢 雜湊查詢 二分查詢也叫折半查詢,優點是比較次數少,但是只能是在有序的序列中才能用此方法,查詢過程 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果...