我的程序包含二進制搜索樹和單個鏈接列表。 其中每個操作都是對兩個數據結構完成的。 我有問題: 1)鏈接兩個數據結構,以使兩個數據結構點的當前點都是相同的元素。 2)排序節點 3)最後也是最困難的一個是在鏈表log(n)中獲得搜索性能,因爲它在bst中。我不能有更多的複雜性。 我使用其他數據結構的選項是none。 btw我使用java作爲編程語言。訪問鏈接列表
Q
訪問鏈接列表
-1
A
回答
0
1)鏈接兩個數據結構,使兩個數據結構點的當前點都是同一個元素。
您可以創建共享元素的樹和鏈接列表。我想這就是你的意思。
2)挑選節點
無法排序樹。樹的節點是自然排序的,如果您在不同的比較器中重新排序它們,則樹不再有效。
3)最後也是最困難的一個就是在鏈表log(n)中獲得搜索性能,因爲它在bst中。
您無法搜索O(logN)
中的無序列表。這在數學上是不可能的。您可以搜索O(logN)
中的有序數組(或數組列表),但這取決於能夠索引O(1)
中的數組/列表,這對於鏈表是不可能的。
但是...您可以同時實現既是樹又是鏈表的混合數據結構。你會用那個看起來是這樣的一個節點類型開始什麼:
private class Node <T> {
private Node<T> next;
private Node<T> prev;
private Node<T> left;
private Node<T> right;
private T value;
...
}
然後建立使用left
和right
領域的樹木,並使用next
和prev
領域的鏈表。
數據結構的列表方面可以用一個Comparator
進行排序,該數據結構的樹方面可以使用第二Comparator
責令 ...允許基於第二Comparator
的排序O(logN)
查找。
我不確定這是否符合您的要求(它們沒有明確說明),但相當接近。
+0
是的,我認爲這是最接近可能的解決方案,我想我可以從類似於您的Node擴展BSTnode類,謝謝。 – voxic
相關問題
- 1. 訪問鏈接列表中的鏈接列表變量
- 2. 通用鏈接列表指針訪問
- 3. 功能訪問鏈接列表
- 4. 如何訪問列表項的鏈接
- 5. PHP訪問控制列表的鏈接
- 6. 修改鏈接表訪問
- 7. MS-訪問:雙鏈接表
- 8. 鏈接列表節點鏈接問題
- 9. 鏈接列表問題C++
- 10. 鏈接列表問題
- 11. 鏈接列表問題
- 12. 鏈接列表問題
- 13. 鏈接列表問題
- 14. Java鏈接列表問題
- 15. 鏈接列表問題,
- 16. 鏈接列表問題
- 17. 鏈接列表問題
- 18. Java鏈接列表問題
- 19. 訪問2010鏈接的ODBC表丟失列問題
- 20. 訪問隊列和鏈接列表違規錯誤C++
- 21. 訪問iframe鏈接
- 22. 訪問鏈接CSS
- 23. Yii2訪問連接表列
- 24. 使用哈希表和鏈接列表的C++訪問衝突
- 25. 如何從鏈接表訪問下拉列表
- 26. 訪問gridview列中的超鏈接
- 27. 鏈接列表的鏈接列表
- 28. 訪問 - 超鏈接不鏈接
- 29. 訪問中刷新鏈接表
- 30. 將SQL Server錶鏈接到訪問
你的問題是什麼? – Michael
所以你想從愚蠢的規格中明白你無法改變的東西。咄? (使用鏈表進行排序和搜索只是愚蠢的) – cadrian
我被要求做到這一點,以證明我理解這兩個數據結構,我可以解決這個連接兩個數據結構的技巧。 – voxic