강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Algorithm & Data Structure

[CS 면접 시리즈 5 자료구조] Cây·Heap·Hash, kết thúc những khái niệm dễ nhầm lẫn

Đây là khóa học CS (computer-science) cốt lõi, tổng hợp các khái niệm cấu trúc dữ liệu được yêu cầu thiết yếu trong thực tế công việc và phỏng vấn, tập trung vào luồng trực quan và biểu đồ. Khóa học đã chọn lọc và bao gồm những phần cốt lõi nhất trong toàn bộ phạm vi, từ mảng, danh sách đến cây, đồ thị và heap. Chúng tôi đã thiết kế khóa học để giải thích theo một cấu trúc liên kết chứ không phải chỉ liệt kê đơn thuần, giúp ngay cả những người mới bắt đầu cũng có thể nhanh chóng nắm bắt toàn bộ ngữ cảnh. Các slide được cấu trúc dưới dạng ghi chú tóm tắt, phù hợp cho việc ôn tập, và đặc biệt được khuyến nghị cho những ai muốn kiểm tra lần cuối trước phỏng vấn hoặc củng cố vững chắc các khái niệm cơ bản.

(5.0) 7 đánh giá

66 học viên

  • yiyj10305235
자료구조
면접
코딩테스트
알고리즘
3시간 만에 완강할 수 있는 강의 ⏰
Interview
Algorithm
computer-science
data-structure

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Nguyên lý và cách triển khai các cấu trúc dữ liệu chính: Mảng, Danh sách, Ngăn xếp, Hàng đợi, Cây, Đồ thị, Heap, v.v.

  • Tiêu chí lựa chọn thông qua so sánh độ phức tạp thời gian/không gian và ưu nhược điểm của từng cấu trúc dữ liệu.

  • Tóm tắt cơ bản để tự tin trả lời câu hỏi cấu trúc dữ liệu thường gặp trong phỏng vấn kỹ thuật.

😎 Hãy cất khóa học này vào túi của bạn


👉 Khi nào thì nên học khóa học này?

  • Khi muốn tổng hợp lại những điểm cốt lõi trong thời gian ngắn trước khi phỏng vấn

  • Khi đã học nhưng không thể tổng hợp thành lời giải thích nên cảm thấy bối rối

  • Khi mới bắt đầu học nhưng muốn nắm bắt "cốt lõi một cách nhanh chóng"


🚀 Kick cốt lõi bài giảng

1⃣ Thời lượng học ngắn và tập trung cao

  • Thời lượng bài giảng không gây áp lực, có thể hoàn thành ngay cả với lịch trình bận rộn và có thể ôn tập nhanh chóng ngay trước khi phỏng vấn

  • Nén gọn những điều cốt lõi, được thiết kế để có thể hoàn thành toàn bộ khóa học trong thời gian ngắn

  • Tôi đã tập trung vào việc hoàn thành khóa học chính là hiệu quả học tập lớn nhất, thay vì chỉ tích trữ các khóa học như mua sắm.

2⃣ Khóa học chuẩn bị phỏng vấn tổng hợp những điểm cốt lõi

  • Đã tổng hợp và sắp xếp các khái niệm và nguyên lý cần thiết phải kiểm tra trước khi phỏng vấn

  • Tôi đã cấu trúc để vừa bổ sung kiến thức nền tảng, vừa có thể sử dụng như tài liệu chuẩn bị phỏng vấn một cách tối ưu

  • Không chỉ là tóm tắt đơn giản, mà được cấu trúc với sơ đồ và giải thích dễ hiểu để ngay cả những người không chuyên cũng có thể hiểu đầy đủ

  • Có thể tổng hợp nhanh chóng những nội dung chính, đồng thời học tập một cách thấu hiểu tại sao chúng lại quan trọng

3⃣ Bao gồm chương luyện tập phỏng vấn thực tế

  • Trong buổi phỏng vấn, khả năng giải thích một cách rõ ràng quan trọng hơn nhiều so với việc chỉ đơn thuần biết kiến thức

  • Nhưng việc tự mình tổng hợp và luyện tập không hề dễ dàng và là một công việc khá phức tạp

  • Khóa học này có phần luyện tập "trả lời bằng một hai câu" ở cuối mỗi phần, giúp bạn giảm bớt công sức tổng hợp kiến thức


🚀Lộ trình làm chủ phỏng vấn kỹ thuật giới thiệu bài giảng thứ năm phần [Cấu trúc dữ liệu].


📕 Cấu trúc dữ liệu, 'Khi nào dùng cái gì?' Hãy rèn luyện trực giác đó!

Cấu trúc dữ liệu (data-structure) không chỉ đơn thuần là hiểu biết về khái niệm,

  • Bạn vẫn còn bối rối khi nào nên sử dụng Stack và Queue

  • Bạn có cảm thấy bối rối về cách các cấu trúc dữ liệu phức tạp như cây hoặc đồ thị được áp dụng vào các bài toán thực tế không

Tức là, đây là môn học cần phát triển trực giác về "khi nào nên sử dụng cấu trúc nào?". Tuy nhiên, đối với người mới bắt đầu, các cấu trúc khác nhau thường rải rác một cách rời rạc, và họ không có cảm giác về việc stack/queue/tree/graph được sử dụng ở đâu và như thế nào, điều này thường gây ra sự thất vọng.

Khóa học này được thiết kế dành riêng cho những người như vậy, truyền đạt trực quan các khái niệm cốt lõi của từng cấu trúc dữ liệu thông qua việc trực quan hóa tập trung vào sơ đồ minh họa, đồng thời so sánh rõ ràng ưu nhược điểm và tiêu chí lựa chọn của từng cấu trúc để có thể hiểu dễ dàng và ghi nhớ lâu dài. Tôi thực sự khuyến khích khóa học này cho những ai đã từng thử coding cơ bản nhưng cảm thấy bối rối với cấu trúc dữ liệu, và những ai muốn hệ thống hóa lý thuyết CS.


🎯 Thông qua khóa học này, bạn sẽ có thể trả lời rõ ràng những câu hỏi sau đây.

Mảng và danh sách liên kết có cấu trúc khác nhau như thế nào và mỗi loại phù hợp với tình huống nào?
→ Giải thích trực quan các khái niệm cốt lõi tập trung vào sự khác biệt về bố trí bộ nhớ, cách tiếp cận, các phép toán chèn/xóa.

Stack và Queue xử lý dữ liệu theo quy tắc nào?
→ Tổng hợp nguyên lý LIFO và FIFO bằng hình ảnh và ví dụ, đồng thời truyền đạt cả bối cảnh ứng dụng trong thực tế.

Cây và đồ thị có những khác biệt cấu trúc nào?
Cấu trúc phân cấp, tính tuần hoàn, phương thức duyệt và các khái niệm cần thiết khác được cấu trúc để có thể hiểu một cách rõ ràng và phân biệt.

Heap hữu ích trong những tình huống nào?
Hàng đợi ưu tiên, nguyên lý và cách triển khai của min/max heap để giải thích một cách có hệ thống nguyên lý hoạt động của heap.
→ Cũng đề cập đến các trường hợp ứng dụng thực tế như sắp xếp, lập lịch, v.v.


📌 Cuối khóa học có chương thực hành phỏng vấn thực tế đang chờ bạn.

"Sự khác biệt giữa mảng và danh sách là gì?", "Điều kiện của một hàm hash tốt là gì?",
"Cấu trúc dữ liệu heap là gì?" như những
câu hỏi thường xuất hiện trong phỏng vấn kỹ thuật, bạn có thể luyện tập tự tổng hợp và trình bày.

[[SPAN_1]]📖[[/SPAN_2]] Chương trình học [[SPAN_2]]được thiết kế chặt chẽ với những kiến thức cốt lõi[[/SPAN_2]]

Đây là mục lục và từ khóa cốt lõi mà bạn sẽ học được trong khóa học này.

Nếu có từ khóa nào lạ thì hãy nắm chắc và vượt qua trong cơ hội này.

  1. Tổng quan về cấu trúc dữ liệu

    • Phân loại cấu trúc dữ liệu, độ phức tạp thời gian và độ phức tạp không gian

  2. Mảng và Danh sách

    • Ưu nhược điểm của mảng, ưu nhược điểm của danh sách, các loại danh sách khác nhau

  3. Stack và Queue

    • Stack, Queue, Deque

  4. Bảng băm

    • Hàm băm, phương pháp giải quyết xung đột của hàm băm

  5. Đồ thị

    • Các loại đồ thị, cài đặt đồ thị

  6. Cây

    • Các loại cây, cây tìm kiếm nhị phân, duyệt cây nhị phân

    • Phép toán heap, triển khai và sử dụng heap, hàng đợi ưu tiên

  7. [Phụ lục] Luyện tập phỏng vấn

    • Ôn tập lại các khái niệm chính một lần nữa dưới dạng hỏi đáp

💡 Việc làm lập trình viên thành công ngay cả với người không chuyên ngành, CS chính là chìa khóa!

"Tôi nghĩ rằng chỉ cần vượt qua bài kiểm tra lập trình là xong. Nhưng không phải vậy."

Tôi cũng vậy, khi lần đầu chuẩn bị xin việc làm developer, tôi chỉ tập trung vào thuật toán và coding test. Tôi cũng có phần tự tin và vượt qua được hầu hết các bài kiểm tra lập trình. Nhưng ở vòng tiếp theo là phỏng vấn kỹ thuật, tôi liên tục thất bại.
Vậy vấn đề là gì?

Chính là sự thiếu hụt kiến thức CS (Khoa học máy tính). Trong phỏng vấn, họ coi trọng kiến thức nền tảng CS hơn nhiều so với thuật toán. Tuy nhiên, không cần phải đào sâu vào tất cả các môn CS. Có những khái niệm CS cốt lõi thường xuyên xuất hiện trong phỏng vấn kỹ thuật.

Khóa học này chính là lộ trình tập hợp một cách có hệ thống những kiến thức CS cốt lõi đang rải rác đó. Dành cho những người không chuyên ngành từng thất vọng như tôi, tôi đã sắp xếp các lý thuyết CS phức tạp một cách rõ ràng theo dòng chảy logic. Hơn nữa, tôi còn bao gồm cả chương luyện tập các câu hỏi cốt lõi để có thể phát triển 'khả năng giải thích' được yêu cầu trong phỏng vấn kỹ thuật. Giờ đây đã đến lúc trở thành một developer thực thụ thông qua việc chinh phục hoàn toàn CS.

Bạn sẽ học những nội dung như thế này

1⃣ Cấu trúc dữ liệu nắm bắt cảm giác thông qua cấu trúc và luồng hoạt động

  • Mảng, danh sách, hàng đợi, ngăn xếp, hash, đồ thị, cây, heap, v.v.
    Cấu trúc cơ bảnnguyên lý hoạt động của từng cấu trúc dữ liệu được trực quan hóa bằng sơ đồ

  • Được cấu trúc để ngay cả những người mới tiếp xúc cũng có thể hiểu dữ liệu chảy như thế nào một cách trực quan như hình ảnh

Giải thích nguyên lý của phép toán heap bằng hình ảnh

2⃣ Xây dựng tiêu chí lựa chọn cấu trúc dữ liệu nào nên sử dụng khi nào

  • Phân tích so sánh ưu nhược điểm, độ phức tạp thời gian, trường hợp sử dụng của từng cấu trúc dữ liệu

  • Theo từng tình huống vấn đề, nên sử dụng cấu trúc dữ liệu nào
    Đưa ra cả cảm giác thực tế và tiêu chuẩn giải quyết bài toán thuật toán

So sánh độ phức tạp thời gian và độ phức tạp không gian

3⃣ Phân tích chi tiết cách thức hoạt động thông qua việc xem xét mã nguồn triển khai trực tiếp

  • Học tập các cấu trúc dữ liệu chính cùng với mã code được triển khai trực tiếp

  • Không chỉ liệt kê các tính năng đơn thuần mà còn theo dõi luồng triển khai
    tại sao lại thiết kế như vậy, logic nào cần thiết cho phép toán nào

Mã triển khai các phép toán heap (Python)

Triển khai hàng đợi sử dụng danh sách liên kết

Triển khai chèn BST sử dụng cấu trúc đệ quy

2⃣ Luyện tập giải thích bằng câu ngắn để chuẩn bị cho phỏng vấn kỹ thuật

  • "Sự khác biệt giữa stack và queue là gì?", "Tại sao xảy ra hash collision và làm thế nào để giải quyết?" v.v.
    Bao gồm việc luyện tập giải thích các câu hỏi thường gặp trong phỏng vấn bằng một hai câu

  • Cuối khóa học có chương luyện tập phỏng vấn
    Thiết kế luồng từ khái niệm → tổng hợp → giải thích thực tế

Tổng hợp câu hỏi cốt lõi về Hash Table

👀 Xem trước khóa học

Nếu video bị dừng, vui lòng làm mới trang :)

Giải thích các phép toán chính của cây tìm kiếm nhị phân

Giải thích triển khai các phép toán heap

🖐 Xin chào! Tôi xin được giới thiệu bản thân! 🙇

Tôi đã tạo ra khóa học này khi nhớ lại quá khứ của mình - những đêm thức trắng lo lắng về kiến thức cơ bản và run rẩy trước từng câu hỏi phỏng vấn.

Tôi bắt đầu từ xuất thân không chuyên ngành nên hiểu rõ hơn ai hết sự khao khát về kiến thức nền tảng (kiến thức CS, ngôn ngữ lập trình, v.v.). Sau khi tự học và nghiên cứu vô số tài liệu, tích lũy những bí quyết riêng của mình, cuối cùng tôi đã tốt nghiệp Đại học Seoul và hiện đang làm việc với tư cách là 🧑🏻‍💻 lập trình viên Kakao.

Từ nhỏ, tôi đã tự tin hơn ai hết trong việc kết hợp và tái cấu trúc các tài liệu đa dạng để tạo ra 'cuốn sổ tay tổng hợp riêng của mình'. Khóa học này chính là cuốn sổ tay bí mật được tạo ra với tất cả 'bí quyết tự học siêu đỉnh', niềm đam mê và triết lý của tôi.

🔥 Tại sao khóa học này lại đặc biệt?

  • Tất cả 'bí quyết' của tôi đều có trong đây: Tôi đã hoàn toàn thấm nhuần kinh nghiệm và bí quyết của mình khi là người tự học CS và ngôn ngữ lập trình từ ngoài chuyên ngành và được tuyển dụng vào các công ty lớn. Tôi đã đưa tất cả phương pháp về cách hiểu những khái niệm phức tạp và trừu tượng một cách hiệu quả nhất và biến chúng thành của riêng mình vào khóa học này.

  • Bất kể lĩnh vực phát triển nào, 'nền tảng' đều là cốt lõi: Dù bạn hướng đến phát triển game, AI, phát triển web/app hay bất kỳ lĩnh vực nào, kiến thức nền tảng về khoa học máy tính không phải là lựa chọn mà là điều bắt buộc. Khóa học này sẽ giúp bạn trở thành một chuyên gia thực thụ dựa trên nền tảng vững chắc.

  • Chiến thắng bằng 'chất lượng áp đảo': Tôi đã tham khảo vô số tài liệu từ sách chuyên ngành, bài giảng của các trường đại học danh tiếng, sách trên thị trường, đến tài liệu phỏng vấn kỹ thuật để trích xuất các từ khóa cốt lõi và tái cấu trúc chúng theo cách riêng của mình. Tôi hứa sẽ giúp bạn hiểu rõ ngay cả những khái niệm phức tạp nhất với những sơ đồ trực quan, hình ảnh minh họa và lời giải thích dễ hiểu được thấm nhuần từ kinh nghiệm thực tế của tôi, khiến bạn thốt lên "À, giờ tôi hiểu rồi!"


🗣 Phỏng vấn thực tế, tại sao 'luyện tập nói' lại quan trọng? (Trải nghiệm sống động của tôi)

Tôi sẽ chia sẻ kinh nghiệm của mình. Trong một cuộc phỏng vấn tại một công ty, tôi đã được hỏi về số thực dấu phẩy động. Rõ ràng đây là nội dung tôi đã đọc và nghĩ rằng mình đã hiểu nhiều lần trong sách, nhưng tôi không thể nói ra được một từ nào. Tôi đã cảm nhận thấu đáo rằng chỉ với việc học thụ động bằng cách đọc và hiểu đơn thuần thì không thể trả lời được trong cuộc phỏng vấn thực tế.

Có lẽ các bạn cũng đã từng trải qua điều này ít nhất một lần. Rõ ràng đã học và hiểu rất tốt, nhưng vì không tổng hợp riêng biệt và 'luyện tập nói', nên trong thực tế thì những nỗ lực đó đã trở nên vô ích.

Để thành công trong phỏng vấn, không chỉ cần tích lũy nhiều kiến thức mà còn cần có khả năng giải thích những kiến thức đó. 'Khả năng giải thích' này chỉ có thể được rèn luyện thông qua việc tóm tắt các khái niệm trong vài câu ngắn gọn và thực hành nói ra thành lời. Trong quá trình này, bạn cũng có thể phát hiện ra mình đã không hiểu chính xác điều gì.

Khóa học của tôi không bỏ lỡ điểm quan trọng này. Sau khi học từng khái niệm cốt lõi, chúng ta sẽ cùng thực hành trong chương 'Luyện tập phỏng vấn' với bài tập tóm tắt thành vài câu ngắn gọn theo định dạng phỏng vấn. Thông qua khóa học này, tôi sẽ trực tiếp giúp các bạn để kiến thức của mình có thể tỏa sáng trước mặt nhà tuyển dụng.

💡 Bạn muốn tìm hiểu thêm về các khóa học chuẩn bị phỏng vấn khác? Hãy tham khảo lộ trình dưới đây nhé :)

Ai cũng có thể làm được! Lộ trình làm chủ phỏng vấn kỹ thuật🔗 để vừa đậu vừa nâng cao thực lực!


Từ những người không chuyên ngành còn xa lạ với các khái niệm CS, đến những thí sinh cần đậu phỏng vấn trong thời gian ngắn!

Được thiết kế để kết nối cốt lõi của khoa học máy tính(computer-science) theo một luồng trực quan và phát triển khả năng giải thích thực tế có thể áp dụng ngay trong phỏng vấn. Lộ trình này không chỉ bao gồm kiến trúc máy tính, hệ điều hành, mạng, cơ sở dữ liệu, cấu trúc dữ liệu mà còn đề cập đến các kiến thức cơ bản của ngôn ngữ lập trình như Java.


Quy mô của lộ trình được xác nhận bằng con số

Lộ trình toàn diện này bao gồm tổng cộng 384 trangtài liệu cốt lõi đồ sộ, 135 bài giảng, và tổng cộng 16 giờ 47 phútchương trình học cô đọng. Tất cả các bài giảng đều giải thích những khái niệm phức tạp bằng sơ đồ và lời giải thích dễ hiểu, giúp bạn có thể hoàn toàn tiếp thu kiến thức một cách tự học. Được cấu trúc bằng slide có thể ôn tậpthay vì chỉ dành cho thuyết trình, giúp bạn có thể hoàn toàn làm chủ các khái niệm cơ bản.


Cấu trúc series như sau:

Mỗi bài giảng đều bao gồm cả chương luyện tập phỏng vấn, giúp bạn vượt qua việc học thuộc lòng đơn thuần để có thể luyện tập giải thích và trình bày trực tiếp. Hãy tham gia lộ trình học ngay bây giờ để nâng cấp sự nghiệp phát triển của bạn lên một tầm cao mới!


🚨(Chú ý một chút!) Lý do tại sao bạn nên tham gia lộ trình ngay bây giờ

[Sách điện tử: Phương pháp học tập để xin việc làm cho lập trình viên] có cơ hội nhận miễn phí.
Vui lòng tham khảo trang lộ trình để biết thêm chi tiết.

Những lưu ý trước khi học

Tài liệu học tập

  • Định dạng tài liệu học tập được cung cấp: PDF


Ngôn ngữ sử dụng

  • Python

Kiến thức tiên quyết

  • Sẽ tốt nếu bạn có kinh nghiệm học các ngôn ngữ lập trình.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người mới bắt đầu lập trình, dù đã thử viết code nhưng còn lúng túng hoặc không tự tin về khái niệm cấu trúc dữ liệu.

  • Người tìm việc. Chuyển việc, muốn nhanh chóng ôn lại khái niệm cấu trúc dữ liệu cho phỏng vấn kỹ thuật.

  • Người giải bài toán thuật toán, bị bế tắc khi chọn cấu trúc dữ liệu hay cách triển khai.

  • Những người thấy cấu trúc cây, đồ thị, heap quá phức tạp

Cần biết trước khi bắt đầu?

  • Nếu từng học ngôn ngữ lập trình thì tốt.

Xin chào
Đây là

1,050

Học viên

68

Đánh giá

3

Trả lời

4.9

Xếp hạng

6

Các khóa học

학력 및 경력

  • 서울대학교 졸업

  • 現 카카오 개발자

     

배경

  • 컴퓨터 비전공자 출신

  • 독학으로 개발을 시작해 CS 기초부터 기술 면접까지 직접 체계적으로 정리하며 준비

  • 시행착오를 겪으며 쌓은 학습법과 개념 정리 노하우를 꾸준히 콘텐츠로 제작해옴

주요 이력

강의 철학

  • 실무와 면접에서 꼭 마주치는 핵심만 선별해,
    쉬운 설명과 도해로 누구나 이해하고 확장할 수 있도록 설계

  • “그때의 저에게 필요했던 강의를 만들고 있습니다”

블로그

Contact

  • yiyj1030@gmail.com

Chương trình giảng dạy

Tất cả

17 bài giảng ∙ (2giờ 21phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

7 đánh giá

5.0

7 đánh giá

  • sonej님의 프로필 이미지
    sonej

    Đánh giá 2

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    59% đã tham gia

    データ構造が全体的によく整理されていて、勉強に役立つ講義でした。ありがとうございます!

    • 100yen님의 프로필 이미지
      100yen

      Đánh giá 19

      Đánh giá trung bình 4.8

      5

      53% đã tham gia

      全般的なデータ構造の形態を学習するのに良い講義です。コンパクトなのに主要なポイントがすべて盛り込まれていてとても良かったです!

      • aerolbn님의 프로필 이미지
        aerolbn

        Đánh giá 27

        Đánh giá trung bình 5.0

        Đã chỉnh sửa

        5

        71% đã tham gia

        データ構造はコンピュータプログラムの基本であり、花だと思います。 この講義は内容が膨大で、整理しにくいデータ構造を必須核心内容を中心に非常によく整理された講義だと思います。 熱心に講義していただき、ありがとうございます。^^

        • heeyaa님의 프로필 이미지
          heeyaa

          Đánh giá 10

          Đánh giá trung bình 5.0

          5

          88% đã tham gia

          データ構造の内容整理にとても役立ちました。ありがとうございます!

          • arkofnoah님의 프로필 이미지
            arkofnoah

            Đánh giá 6

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            良い講義のおかげで一歩を踏み出すことができました。 これから旅を始めてみます。 ありがとうございます!

            747.355 ₫

            Khóa học khác của yiyj10305235

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!