我是一名編程初學者,請在我身上輕鬆一下,我很難找到我的問題的答案。我無法理解複雜的代碼。有人可以用簡單的代碼解釋我如何generic list manipulation function written which accepts elements of any kind?
在此先感謝。如何編寫泛型列表操作函數?
7
A
回答
1
看起來你需要一個異構列表。一些指針如下:
將列表節點的數據元素設置爲通用結構,其中包含數據類型和數據的指示符。
/** This should be your data node **/
struct nodedata
{
int datatype;
void *data;
};
/** This should be your list node **/
struct listnode
{
struct nodedata *data;
struct listnode *next;
};
使用上述結構,可以存儲不同類型的數據。 根據數據類型使用函數指針進行比較函數或調用不同的函數。
+1
。爲你的時間+1。 – Korhan
1
這通常使用空指針來完成:
typedef struct node {
struct node *next;
void *data;
} node;
node *insert(node *list, void *data) {
}
node *delete(node *list, node *to_delete) {
}
這種操縱的功能不依賴於實際的數據類型,這樣他們可以被一般地實施。例如,你可以有上面的數據字段的數據類型結構:
typedef struct data {
int type;
void *data;
} data;
/* .... */
data d;
d.type = INT;
d.data = malloc(sizeof(int));
node n = {NULL, (void*)&data);
+0
謝謝。爲你的時間+1。 – Korhan
相關問題
- 1. 編寫調用scala中泛型函數的泛型函數
- 2. 如何編寫採用通用類型的泛型函數?
- 3. 如何傳遞泛型列表作爲構造函數?
- 4. 如何爲任何數據構造函數編寫泛型函數?
- 5. 如何編寫區分signed和unsigned int的泛型函數?
- 6. 如何爲不同的類編寫通用的泛型函數?
- 7. iOS - Swift:如何爲這種情況編寫泛型函數?
- 8. 如何使用const InputIterators爲泛型容器編寫函數?
- 9. 如何爲列表編寫replace()函數
- 10. 如何使用泛型編寫通用操縱器?
- 11. 如何用列表作爲參數編寫函數
- 12. 如何編寫類型級別列表的交集函數
- 13. 如何使用泛型類型的泛型列表泛型類
- 14. 用C++/CLI從泛型函數返回泛型列表
- 15. 如何從非泛型函數返回泛型函數?
- 16. 使用RxJS編寫函數/操作符
- 17. 如何編寫泛型隱式轉換?
- 18. 如何在泛型列表
- 19. C#泛型列表作爲函數參數
- 20. WPF泛型:如何定義一個對象列表作爲函數的參數
- 21. 如何用一般類的不同泛型類型的操作數重載泛型類的操作符
- 22. 如何爲各種並置操作編寫函數
- 23. 如何在JavaScript中編寫一個參數大小的泛型函數?
- 24. 如何編寫函數原型?
- 25. 如何編寫一個將不同類型作爲參數的泛型方法?
- 26. 泛型函數
- 27. 如何指定泛型類型作爲函數參數
- 28. 操作泛型重載
- 29. 泛型列表
- 30. 泛型與數組列表
C不是泛型編程遺憾的是 – Pubby
這[圖書](一個非常好的語言http://www.cs.rit.edu/ 〜ats/books/ooc.pdf)可能對你有幫助,也可以[代碼](http://www.linuxcandy.com/2011/11/week-4-introduction-to-generic.html) –
@GrijeshChauhan謝謝你非常感謝 – Korhan