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

Chương trình C chèn nút tại vị trí bất kỳ dùng danh sách liên kết đôi

Danh sách liên kết dùng cấp phát động, gồm các nút (node). Mỗi nút có 2 phần: dữ liệu và liên kết.

Các loại danh sách liên kết

  • Đơn (Singly)
  • Đôi (Doubly)
  • Đơn vòng (Circular singly)
  • Đôi vòng (Circular doubly)

Danh sách liên kết đôi

Mỗi nút có con trỏ prev (trước) và next (sau).

Chương trình chèn nút tại vị trí bất kỳ

#include <stdio.h>
#include <stdlib.h>

struct node {
    int num;
    struct node *preptr;
    struct node *nextptr;
} *stnode, *ennode;

void DlListcreation(int n);
void DlLinsertNodeAtBeginning(int num);
void DlLinsertNodeAtEnd(int num);
void DlLinsertNodeAtAny(int num, int pos);
void displayDlList(int a);

int main() {
    int n, num1, a, insPlc;
    stnode = NULL; ennode = NULL;
    printf("\n\n Doubly Linked List: Insert node at any position:\n");
    printf("---------------------------------------------------\n");
    printf(" Input number of nodes: "); scanf("%d", &n);
    DlListcreation(n);
    a = 1; displayDlList(a);
    printf(" Input position (1 to %d) to insert: ", n+1); scanf("%d", &insPlc);
    printf(" Input data for position %d: ", insPlc); scanf("%d", &num1);
    DlLinsertNodeAtAny(num1, insPlc);
    a = 2; displayDlList(a);
    return 0;
}

// Các hàm tạo danh sách, chèn đầu, chèn cuối, chèn giữa, hiển thị...
// (Xem mã nguồn đầy đủ trong nội dung gốc)

Kết quả mẫu

Input the number of nodes: 5
Input data for node 1: 23 ... node 5: 10
Data entered: 23 12 11 34 10
Input position (1 to 6): 5
Input data for position 5: 78
After insertion: 23 12 11 34 78 10