Tôi đang tìm cấu trúc dữ liệu (giống mảng) cho phép chèn nhanh các giá trị vào trong cấu trúc (nhanh hơn O (N)). Cấu trúc dữ liệu phải có khả năng in ra các phần tử của nó theo cách chúng được chèn. Điều này tương tự như một cái gì đó như List.Insert() (mà là quá chậm vì nó phải thay đổi mọi phần tử trên), ngoại trừ tôi không cần truy cập hoặc xóa ngẫu nhiên. Chèn sẽ luôn nằm trong kích thước của 'mảng'. Tất cả các giá trị là duy nhất. Không cần thao tác nào khác.Cấu trúc dữ liệu hiệu quả để chèn
Ví dụ: nếu Chèn (x, i) chèn giá trị x vào chỉ mục i (0-lập chỉ mục). Sau đó:
- Insert (1, 0) cho {1}
- Insert (3, 1) cho {1,3}
- Insert (2, 1) cho {1,2,3}
- Insert (5, 0) cho {5,1,2,3}
Và nó sẽ cần để có thể in ra {5,1,2,3} ở cuối.
Tôi đang sử dụng C++.
ý bạn là gì bởi "mảng như"? – juanchopanza
Bạn có yêu cầu về độ phức tạp của việc vượt qua cấu trúc dữ liệu không? –
@juanchopanza Tôi có nghĩa là trên bề mặt, nó sẽ hoạt động như một mảng tuyến tính. Nó nên giữ cho các yếu tố theo cách mà tôi đã chèn chúng. – Peter