Cấu trúc dữ liệu và giải thuật

Cấu trúc dữ liệu Heap

Cấu trúc dữ liệu Heap
Bạn cần xây dựng một cấu trúc dữ liệu (như bao kiểu khác như List, Array...) nhưng cấu trúc dữ liệu này có đặc điểm
1. Khi thêm vào thì không quan tâm đến việc xắp xếp dữ liệu
2. Nhưng khi lấy giá trị các phần tử trong cấu trúc dữ liệu đó, giá trị lấy ra phải là nhỏ nhất hoặc lớn nhất.
Xây dựng cấu trúc dữ liệu như thế nào để đáp ứng được yêu cầu trên?

Đọc tiếp

C Scharp

Mảng trong C#

Mảng trong C#
Khi học hay tìm hiểu bất kỳ ngôn ngữ lập trình nào, việc hiểu rõ các kiểu dữ liệu cơ bản (nguyên thuỷ) mà ngôn ngữ đó cung cấp và vận dụng các kiểu dữ liệu này một các thành thạo và hiểu rõ bản chất của nó sẽ giúp bạn rất nhiều trong tương lai. Vì thế chúng ta sẽ quay lại một kiểu dữ liệu cơ bản của C# đó là Array trong C# nhé.

Đọc tiếp

C Scharp

Biểu thức Lambda

Biểu thức Lambda
Có thể nói so với anonymous method, lambda expression được coi là một sự cái tiến đáng giá từ phiên bản C# 2.0 lên C# 3.0. Khi dùng anonymous method, bạn có thể tạo các hàm in-line nhằm hạn chế việc khai báo các hàm riêng lẻ không cần thiết, giúp mã lệnh ngắn gọn hơn. Nay với lambda expression, bạn có thể viết ngắn gọn và dễ dàng hơn nhờ việc cung cấp toán tử và cú pháp mới, đồng thời thể hiện sự “thông minh” của compiler bằng cách tự nhận diện kiểu của dữ liệu. Ngoài ra, đây còn là kĩ thuật để tạo ra các kiểu expression tree mà ta sẽ bàn tới khi có dịp.

Đọc tiếp

C Scharp

Interface vs Abstract

Interface vs Abstract
Hiện nay mặc dù OOP đã rất phổ biến nhưng đa số vẫn còn khá mơ hồ trong việc phân biệt và định nghĩa hai khái niệm Interface và Abstract class. Có vẻ vấn đề này không được dạy rõ ràng ở trường, hoặc có thể các người dạy cũng chưa nắm rõ về nó. Ngoài ra, đây còn là một vấn đề cần giải quyết mà xác suất bạn nhận được khi đi phỏng vấn là khá cao.

Đọc tiếp