Tôi là người mới bắt đầu trong lập trình, hãy dễ dàng với tôi và tôi cảm thấy khó khăn để có được câu trả lời cho câu hỏi của mình. Tôi không thể có được đầu của tôi xung quanh các mã phức tạp. Có thể một số xin vui lòng giải thích cho tôi với mã hóa đơn giản như thế nào là generic list manipulation function written which accepts elements of any kind?
Cảm ơn trước.Chức năng thao tác danh sách chung được viết như thế nào?
Trả lời
Có vẻ như bạn cần một danh sách không đồng nhất. Một số con trỏ bên dưới:
Làm cho phần tử dữ liệu của nút danh sách dưới dạng cấu trúc chung, có chứa chỉ báo cho kiểu dữ liệu và dữ liệu.
/** 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;
};
Sử dụng cấu trúc bên trên, bạn có thể lưu trữ các loại dữ liệu khác nhau. Sử dụng các con trỏ hàm cho các hàm so sánh hoặc gọi các hàm khác nhau tùy thuộc vào kiểu dữ liệu.
Cảm ơn bạn. +1 cho thời gian của bạn. – Korhan
này thường được thực hiện bằng con trỏ void:
typedef struct node {
struct node *next;
void *data;
} node;
node *insert(node *list, void *data) {
}
node *delete(node *list, node *to_delete) {
}
chức năng thao tác đó không phụ thuộc vào loại thực tế của dữ liệu để họ có thể được thực hiện quát. Ví dụ: bạn có thể có cấu trúc kiểu dữ liệu cho trường dữ liệu ở trên:
typedef struct data {
int type;
void *data;
} data;
/* .... */
data d;
d.type = INT;
d.data = malloc(sizeof(int));
node n = {NULL, (void*)&data);
Cảm ơn bạn. +1 cho thời gian của bạn. – Korhan
- 1. Chức năng thao tác danh sách chung trong C?
- 2. Thao tác, hộp kiểm từ danh sách
- 3. Mathematica Thao tác danh sách động
- 4. Thao tác commit_on_success được lồng nhau như thế nào?
- 5. Trong thao tác danh sách chức năng, chúng ta gọi là "chèn cái gì đó giữa mỗi mục"?
- 6. Thao tác trên mỗi cặp phần tử trong danh sách
- 7. Đọc danh sách Python, giải nén và nhiều thao tác
- 8. làm thế nào để vượt qua danh sách như tham số trong chức năng
- 9. Interleaving danh sách các chức năng
- 10. Viết chức năng tổng quát cho cả hai chuỗi và danh sách trong python
- 11. Làm thế nào để tạo ra một danh sách chung bằng một danh sách chung
- 12. Chức năng giống như Slice từ một Danh sách trong F #
- 13. Danh sách Erlang: chức năng index_of?
- 14. Danh sách nhóm cho chức năng hclust
- 15. chức năng phải ngắn như thế nào?
- 16. Danh sách chung/Từ điển
- 17. Làm cách nào để có danh sách các chức năng không tương tác của Emacs lisp?
- 18. kiểu chức năng để nhân hai danh sách với Scala
- 19. Chức năng giảm hoạt động như thế nào?
- 20. Chức năng chung trong Vala
- 21. Các ràng buộc chung về chức năng
- 22. Gọi từng chức năng trong danh sách
- 23. Android: Nhiều thao tác trên Chế độ xem danh sách - Vấn đề tập trung
- 24. Chức năng jQuery pushStack hoạt động như thế nào?
- 25. R thao tác mảng
- 26. Thao tác thao tác không kích hoạt
- 27. Làm cách nào để triển khai chức năng hoàn tác?
- 28. Thao tác Byte trong PHP
- 29. Phạm vi chức năng ẩn danh thông qua như là chức năng lập luận
- 30. Thao tác "dữ liệu" từ thành công $ .ajax: chức năng (dữ liệu) {
C không phải là ngôn ngữ rất tốt cho chương trình chung không may – Pubby
[BOOK] này (http://www.cs.rit.edu/) ~ ats/books/ooc.pdf) có thể giúp bạn rất nhiều, cũng là một [code] (http://www.linuxcandy.com/2011/11/week-4-introduction-to-generic.html) –
@GrijeshChauhan Cảm ơn bạn rất nhiều – Korhan