2012-04-01 24 views
0

我正在學習自上個2個月以來的數據結構。
已經有了各自的基礎知識,但仍然發現自己無法將其應用於任何現實世界的問題。

每當遇到任何問題時,我的思緒仍然在創建數組或對象列表的舊模式,然後編碼解決方案。 (就像我從過程編程切換到OOP的那些日子一樣,但現在我可以看到所有的東西:))

我試圖在網上搜索,也經歷了幾本書。但是每本書都有基本的算法。 (例如創建/插入/刪除/查找元素堆棧,隊列,樹等...及其大O評估)

我正在尋找一些真正的問題的實際代碼實現。數據結構應用程序示例代碼(最好在Java中)

+0

從整數到一個拿着對象的數據結構的歸納是很容易的,如果你忽略方差(基本上,該亞型有行爲) - 只是一巴掌就可以了''和使用,而不是說'int'。如果需要比較,請查看標準庫的功能 - Java中的IIRC意味着「比較器類」。醜陋但很簡單。 – delnan 2012-04-01 07:46:24

+0

我知道從int到object的泛化。實現compareTo方法是完成它的複雜方式。然而我的問題是要獲得例子。我會編輯我的問題。其重點從我的主要查詢。 – Neha 2012-04-01 07:55:22

+0

我認爲這不是你的重點,因此它是一個評論。但是,是的,如果你知道這一點,可能沒有意義。 – delnan 2012-04-01 07:56:16

回答

1

這裏有幾個數據結構的應用程序的一些隨機的例子(不是所有的人都非常逼真和/或實用的,我必須承認),當然有更多的,但這應該給一些跡象表明:

  • 哈希表:你有一個大詞典和定義詞典。用戶可以輸入單詞並直接查看其定義。也應該可以用新詞擴展詞典。
  • 平衡二叉搜索樹(例如紅黑):相同的詞典;除了這次,當用戶輸入一個單詞時,還需要顯示前後按字母順序排列的10個單詞。
  • 鏈接列表:你是一個邪惡的黑客,編程一個密鑰記錄器,監聽某人在密碼字段中輸入密碼。不幸的是,這個人往往會犯很多錯別字,並通過使用箭頭鍵,刪除和退格鍵來不斷糾正自己。問題列表包含鍵入的字符。你也有一個迭代器和光標位於同一個地方,並相應地使用它。
  • 隊列:您正在一次處理對Web服務器的連續請求。每當有新的請求進入時,如果你仍然忙於另一個請求,就將它放入隊列中。
  • 優先隊列:你正在實現一個進程調度器。當一個過程的時間結束時,你把它放在隊列中,並取決於過程優先級的關鍵和停止的時間點。