所以,如果我有一個雙鏈表,並且我想添加一個名稱和一個年齡,這樣我就可以分別搜索這兩個值了。具有兩個值的雙鏈接列表節點
-4
A
回答
0
鏈表非常適合於在多個按鍵排序:
item0: age=1 item1: age=99;
name='z' name='a';
next_age=item1 next_age=NULL;
next_name=NULL next_name=item0
基本上唯一要考慮的額外的事情是如何安排列表遍歷算法共享和無知有關的位置下一個/ prev鏈接。
一種解決方案是包裹列表結構:
struct list_s {
struct list_s *next;
struct list_s *prev;
void *key_ptr;
struct master_struct_s *parent;
}
struct master_struct_s {
struct list_s key1;
struct list_s key2;
struct list_s key3;
int other_data;
}
查閱列表排序算法可以與& KEY1,& KEY2或& KEY3工作,並能夠指的other_data內容,就像每個列表結構指的是「父」結構或它們自己的容器。
0
你問,
「所以,如果我有一個雙向鏈表,我想添加一個名字和也是一個時代,這樣我就可以單獨如何將我做搜索兩者兼而有之? 」
作爲一個實際問題,您不會爲此目的實施一個雙向鏈表。相反,您可以使用標準庫容器,如std::vector
。或者std::map
。
但考慮到這是學習,問題是問題是&hellip什麼;
我想到你’再問一次,你怎麼能讓每個節點同時參與兩個鏈表。
而一種簡單的方法是讓列表節點只包含指向數據節點的指針。俗話說,解決任何計算機科學問題,是一個額外的間接層。當然,這也是解決太多間接問題的辦法。 :-P
相關問題
- 1. 從具有特定值的鏈接列表中刪除節點
- 2. 鏈接列表的兩個節點中的合併值
- 3. 具有多個下一個節點的雙鏈表
- 4. 鏈接列表:爲節點賦值?
- 5. 刪除鏈接列表中具有特定值的所有節點
- 6. 鏈接列表方法,在具有給定節點值的節點之前移除節點
- 7. 鏈接列表和節點
- 8. 鏈接列表節點鏈接問題
- 9. 帶5個節點的雙鏈表
- 10. 如何遍歷前面兩個節點的鏈接列表?
- 11. 如何交換C中鏈接列表中的兩個節點?
- 12. 找到兩個鏈接列表的合併節點?
- 13. 雙鏈表節點問題
- 14. 雙鏈表:刪除節點
- 15. 交換雙鏈表中的兩個節點
- 16. 鏈接列表:.next和temp鏈接列表節點的定義
- 17. 鏈接列表的每個節點具有相同的字符串
- 18. 鏈接列表的最後一個節點值未被打印
- 19. 雙向連接列表創建節點
- 20. 使用雙指針在鏈接列表中插入節點
- 21. 爪哇雙向鏈表 - 兩個相鄰節點
- 22. 節點鏈接列表中的對象
- 23. 刪除鏈接列表中的節點
- 24. 交換鏈接列表中的節點
- 25. 交換鏈接列表中的節點
- 26. 鏈接列表節點的大小
- 27. 刪除鏈接列表中的節點
- 28. 打印鏈接列表中的節點
- 29. 編輯鏈接列表中的節點
- 30. 刪除鏈接列表中的節點
就去做。將所需的任何數據放入列表節點中。 – Mat
但是,這仍然允許我基於僅年齡後搜索? – user1913688
你是編寫搜索代碼的人。它可以做任何你喜歡的事情。 – Mat