Hướng dẫn và Ghi chú về Ngăn Xếp trong C
Mục lục
Giới thiệu
Nắm vững định nghĩa, đặc điểm và kiểu dữ liệu trừu tượng của ngăn xếp
Định nghĩa
Là cấu trúc chỉ cho phép chèn/xóa tại đầu cuối
Đặc điểm
Đầu cuối là đỉnh (top)
Nguyên tắc sau vào trước ra
Kiểu dữ liệu trừu tượng
Trang 57
Mối quan hệ giữa ngăn xếp và đệ quy
Đệ quy
Định nghĩa đệ quy
Khi một hà ...
Đăng vào ngày 3 tháng 7 lúc 13:56
Xây dựng cây nhị phân từ dãy trung thứ tự và hậu thứ tự
Bài toán
Cho hai mảng số nguyên trungTu và hauTu tương ứng biểu diễn dãy trung thứ tự và hậu thứ tự của cùng một cây nhị phân. Nhiệm vụ là xây dựng lại cây nhị phân từ hai dãy này.
Ví dụ 1:
<strong>Đầu vào:</strong> trungTu = [9,3,15,20,7], hauTu = [9,15,7,20,3]<br><strong>Đầu ra:</strong> [3,9,20,null,null,15,7] ...
Đăng vào ngày 3 tháng 7 lúc 10:33
Giải bài toán lấp đầy thảm bằng phương pháp Chia để trị
Bài toán: P1228 Lấp đầy thảm - Luogu
Hiểu rõ cách tiếp cận bài toán này sẽ giúp bạn giải quyết một cách dễ dàng.
Trước hết, chúng ta chia hình vuông thành bốn vùng: trên-trái, dưới-trái, trên-phải, dưới-phải. Đầu tiên, xác định tọa độ (x, y) nằm ở vùng nào.
Nếu tọa độ nằm ở góc trên-trái, chúng ta đặt một ô vuông ở đường chéo đối diện, tức là ...
Đăng vào ngày 27 tháng 6 lúc 01:55
Sắp xếp hợp nhất
Giới thiệu
Sắp xếp hợp nhất (Merge Sort) là thuật toán sắp xếp dựa trên nguyên lý chia để trị và đệ quy. Bài viết này trình bày chi tiết về cách triển khai và tối ưu thuật toán này.
Nguyên lý hoạt động
Thuật toán hoạt động theo 2 bước chính:
Chia mảng: Chia mảng thành hai nửa và thực hiện sắp xếp từng nửa.
Hợp nhất: Kết hợp hai mảng đã được ...
Đăng vào ngày 24 tháng 6 lúc 02:58
[Giải Tứ Lanqiao Cup C++ Nhóm B] Biểu diễn số dưới dạng phân số
Nguồn: Giải Tứ Lanqiao Cup Nhóm C++
Thuật toán: Quay lui và tối ưu
Mô tả bài toán
Số 100 có thể biểu diễn dưới dạng phân số như sau: 100 = 3 + 69258/714
Cũng có thể biểu diễn là: 100 = 82 + 3546/197
Lưu ý đặc điểm: trong biểu diễn phân số, các chữ số từ 1 đến 9 xuất hiện chính xác một lần (không chứa số 0).
Loại biểu diễn phân số như vậy, số 1 ...
Đăng vào ngày 21 tháng 6 lúc 01:54
Triển khai chuỗi Fibonacci bằng vòng lặp
1. Định nghĩa chuỗi Fibonacci
Chuỗi Fibonacci, còn được gọi là dãy Fibonacci, là một chuỗi số mà trong đó mỗi số sau bằng tổng của hai số trước nó. Chuỗi này được nhà toán học người Ý Leonardo Fibonacci giới thiệu vào năm 1202. Định nghĩa chính xác của nó là:
1. Số hạng thứ nhất (F(1)) và số hạng thứ hai (F(2)) đều bằng 1;
2. Từ số hạng thứ ba ...
Đăng vào ngày 14 tháng 6 lúc 06:26
Codeforces Round 986 (Div. 2) - Phân tích và giải thuật
Bài A: Di chuyển theo hướng
Do giới hạn nhỏ, ta có thể mô phỏng toàn bộ quá trình di chuyển bằng cách lặp lại chuỗi lệnh nhiều lần. Chỉ cần kiểm tra sau mỗi bước xem đã đến tọa độ mục tiêu chưa.
#include <iostream>
#include <string>
using namespace std;
void process() {
int n, tx, ty;
string moves;
cin >> n >> tx >> ty ...
Đăng vào ngày 12 tháng 6 lúc 08:21
Xóa một nút khỏi Cây Tìm kiếm Nhị phân
Các đặc tính của Cây Tìm kiếm Nhị phân
Có ba đặc tính quan trọng của Cây Tìm kiếm Nhị phân (BST) mà bạn nên nắm vững:
1. Duyệt trung thứ tự (In-order traversal) tạo ra một dãy số đã sắp xếp. Thứ tự duyệt: `Con trái -> Nút gốc -> Con phải`.
public LinkedList<Integer> duyetTrungThuTu(TreeNode node, LinkedList<Integer> danhSac ...
Đăng vào ngày 4 tháng 6 lúc 19:40
Xử lý Mảng và Ma trận trong C
Bài thực hành 1
Các giá trị giống nhau. Địa chỉ bộ nhớ liên tiếp.
Khoảng cách bằng kích thước một hàng mảng. Kích thước này bằng số phần tử mỗi hàng nhân với kích thước kiểu dữ liệu.
Bài thực hành 2
Tham số hàm: int arr[], int len. Tham số truyền vào: arr, len.
Hàm input dùng để nhập dữ liệu cho mảng. Hàm compute tính trung bình các giá tr ...
Đăng vào ngày 2 tháng 6 lúc 16:13
Bài thực hành số 3
Hoạt động 1:
1 #include <stdio.h>
2
3 char convert_score_to_grade(int point);
4
5 int main() {
6 int point;
7 char level;
8 while(scanf("%d", &point) != EOF) {
9 level = convert_score_to_grade(point);
10 printf("Điểm: %d, Xếp loại: %c\n\n", point, level);
11 }
12 ret ...
Đăng vào ngày 30 tháng 5 lúc 11:12