Có ai biết nơi tôi có thể tìm thấy ví dụ về số Spaghetti stack được viết bằng C không?Ngăn xếp Spaghetti trong C
Trả lời
Nó phải là một cái gì đó tương tự như:
struct stack_item;
struct stack_item
{
stack_item *parent;
void *ptr_data;
};
stack_item *stack_pointer = null;
void push(stack_item *item)
{
if (stack_pointer == null)
item->parent = null;
else
item->parent = cur;
stack_pointer = item;
}
/* like push but doesn't update cur stack item to the one pushed, just add a child */
void push_parallel(stack_item *item)
{
if (stack_pointer == null)
{
stack_pointer = item;
item->parent = null;
}
else
item->parent = stack_pointer;
}
stack_item *pop()
{
if (stack_pointer == null)
{
printf("error: stack is empty.\r\n");
return null;
}
stack_item *current = stack_pointer;
stack_pointer = current->parent;
return current;
}
tâm rằng một mì spaghetti chồng rất hữu ích khi bạn muốn giữ tài liệu tham khảo của những điều mà bạn bật ra khỏi ngăn xếp, có nhiều song song danh sách liên kết kết thúc với một gốc chung. Vì vậy, bạn phải giữ tài liệu tham khảo của mục bạn bật ra bởi vì bạn cần phải đi qua chúng trong một dưới lên cách từ lá đến gốc, và tất nhiên bằng cách sử dụng một nút lá khác nhau sẽ tạo ra một danh sách liên kết khác nhau có các yếu tố trong phổ biến với các danh sách khác bắt đầu từ các lá khác ..
cur là gì? bạn không bao giờ định nghĩa đó là gì ... – Ralph
không nên hàm push_allel trả về một con trỏ lên đầu ngăn xếp? – Ralph
cur chỉ là một lỗi do stack_pointer được gọi theo một cách khác, tôi đã sửa nó. Đối với hàm push_allel nó phụ thuộc, thực tế là một ngăn xếp spaghetti không thực sự có ONE đầu stack nhưng nhiều theo từ nơi bạn bắt đầu đến thăm nó, thông thường bạn phải quan tâm đến tài liệu tham khảo bên ngoài ngăn xếp của chính mình. – Jack
- 1. C++ Ngăn xếp ngăn xếp Visual Studio với mảng 2D
- 2. Chuyển đổi ngăn xếp trong C++
- 3. Phân bổ ngăn xếp trong C
- 4. Dung lượng ngăn xếp trong C#
- 5. C# sao chép ngăn xếp
- 6. Khóa ngăn xếp và xếp hàng miễn phí trong C#
- 7. Ngăn xếp ngăn xếp lạ?
- 8. Ngăn xếp ngăn xếp là gì?
- 9. Ngăn xếp C++ an toàn Chủ đề
- 10. trả về biến ngăn xếp C++
- 11. C++ vs2010 tăng kích thước ngăn xếp
- 12. C#: làm cách nào để ẩn một phương thức khỏi ngăn xếp ngăn xếp?
- 13. Kiểm tra kích thước ngăn xếp trong C#
- 14. In dấu vết ngăn xếp trong C++ (MSVC)?
- 15. Lỗi tràn ngăn xếp trong C# set/get
- 16. Địa chỉ của Ngăn xếp và Heap trong C++
- 17. Sử dụng ngăn xếp được xác định trong C++ stl
- 18. Các đối tượng ẩn danh trên ngăn xếp, trong C++?
- 19. Unraveling Assembly Language Spaghetti Code
- 20. Định nghĩa của spaghetti php?
- 21. Kích thước ngăn xếp tối đa C/C++
- 22. Không hiển thị đường dẫn tệp của máy xây dựng trong ngăn xếp ngăn xếp
- 23. Tôi không hiểu lỗi tràn ngăn xếp với DispatchMessageW lặp lại trong ngăn xếp cuộc gọi
- 24. gỡ lỗi trực tiếp ngăn xếp ngăn xếp
- 25. URL ngăn xếp ngăn xếp hoạt động như thế nào?
- 26. C++, ngăn chặn cá thể lớp được tạo trên ngăn xếp (trong quá trình biên dịch)
- 27. Cuộn mượt trong ngăn xếp trong wpf
- 28. Segfault trên ngăn xếp tràn
- 29. hoạt động ngăn xếp
- 30. kích thước ngăn xếp luồng trên Windows (Visual C++)
+1 cho một trong những cấu trúc dữ liệu kỳ lạ nhất, hữu ích hầu như chỉ trong ngăn xếp bảng biểu tượng để biên soạn .. – Jack
@Jack: "gần như" sang một bên, ngăn xếp spaghetti cũng rất hữu ích trong việc triển khai tiếp tục. – outis
@outis bạn có thể giải thích cách sử dụng ngăn xếp Spaghetti vì tôi không biết tại sao cấu trúc dữ liệu này được sử dụng? – Jerky