Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Giải thích xóa phần tử trong hàng đợi bằng C


Cấu trúc dữ liệu là tập hợp dữ liệu tổ chức có cấu trúc. Chia thành hai loại:

  • Cấu trúc dữ liệu tuyến tính - Dữ liệu tổ chức tuyến tính. Ví dụ: mảng, cấu trúc, ngăn xếp, hàng đợi, danh sách liên kết.

  • Cấu trúc dữ liệu phi tuyến tính - Dữ liệu tổ chức phân cấp. Ví dụ: Cây, đồ thị, tập hợp, bảng.

Hàng đợi

Cấu trúc dữ liệu tuyến tính, chèn ở cuối, xóa ở đầu.

Giải thích xóa phần tử trong hàng đợi bằng C

Thứ tự hàng đợi: FIFO - First In First Out

Thao tác

  • Chèn - Thêm phần tử vào hàng đợi.
  • Xóa - Xóa phần tử khỏi hàng đợi.

Điều kiện

  • Tràn hàng đợi - Thêm vào hàng đợi đầy.

  • Thiếu hàng đợi - Xóa từ hàng đợi rỗng.

Thuật toán

Thuật toán chèn:

  • Kiểm tra tràn hàng đợi.
if(r == n) printf("Hang doi tran")
  • Nếu không, chèn phần tử.
q[r] = item; r++

Thuật toán xóa:

  • Kiểm tra thiếu hàng đợi.
if(f == r) printf("Hang doi thieu")
  • Nếu không, xóa phần tử.
item = q[f]; f++

Thuật toán hiển thị:

  • Kiểm tra hàng đợi rỗng.
if(f == r) printf("Hang doi rong")
  • Nếu không, in từ 'f' đến 'r'.
for(i = f; i < r; i++) printf("%d", q[i]);

Chương trình

Chương trình C xóa phần tử hàng đợi:

#include <stdio.h> 
#define MAX 50 
void insert(); 
int array[MAX]; 
int rear = -1; 
int front = -1; 
main(){ 
    int add_item; 
    int choice; 
    while(1){ 
        printf("1. Chen phan tu vao hang doi\n"); 
        printf("2. Xoa phan tu khoi hang doi\n"); 
        printf("3. Hien thi phan tu hang doi\n"); 
        printf("4. Thoat\n"); 
        printf("Nhap lua chon: "); 
        scanf("%d", &choice); 
        switch(choice){ 
            case 1: insert(); break; 
            case 2: delete(); break; 
            case 3: display(); break; 
            case 4: exit(1); 
            default: printf("Lua chon sai\n"); 
        } 
    } 
} 
void insert(){ 
    int add_item; 
    if(rear == MAX - 1) 
        printf("Hang doi tran\n"); 
    else{ 
        if(front == -1) 
            front = 0; 
        printf("Chen phan tu vao hang doi: "); 
        scanf("%d", &add_item); 
        rear = rear + 1; 
        array[rear] = add_item; 
    } 
} 
void display(){ 
    int i; 
    if(front == -1) 
        printf("Hang doi rong\n"); 
    else{ 
        printf("Hang doi la:\n"); 
        for(i = front; i <= rear; i++) 
            printf("%d ", array[i]); 
        printf("\n"); 
    } 
} 
void delete(){ 
    if(front == -1 || front > rear){ 
        printf("Hang doi thieu\n"); 
        return; 
    } else { 
        printf("Phan tu xoa khoi hang doi: %d\n", array[front]); 
        front = front + 1; 
    } 
}

Đầu ra

Kết quả chạy chương trình:

1. Chen phan tu hang doi 
2. Xoa phan tu hang doi 
3. Hien thi hang doi 
4. Thoat 
Lua chon: 1 
Chen: 12 
... 
Lua chon: 2 
Xoa: 12 
Hang doi: 23 34 
...