首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C 語言陣列操作實作:插入、刪除、查詢完整函數庫

     編輯:關於C++

純 C 語言實作的陣列基本操作函數庫,包含插入、刪除、查詢、列印四大核心功能,採用靜態陣列模擬動態陣列行為,適合嵌入式系統或教學演示。

核心函數介面

#define MAX 100

// 插入元素:位置 i (1-based),值 x,返回新長度
int insert(int a[], int n, int i, int x);

// 刪除元素:位置 i (1-based),返回新長度
int del(int a[], int n, int i);

// 查詢元素:值 x,返回位置 (1-based) 或 -1
int search(int a[], int n, int x);

// 列印陣列
void printArray(int a[], int n);

關鍵實作細節

插入操作

int insert(int a[], int n, int i, int x) {
    if (n + 1 > MAX) {
        printf("無插入空間\n");
        return n;
    }
    if (i < 1 || i > n + 1) {
        printf("插入位置非法\n");
        return n;
    }
    // 從後往前搬移,騰出位置 i-1 (0-based)
    for (int j = n - 1; j >= i - 1; --j) {
        a[j + 1] = a[j];
    }
    a[i - 1] = x;
    return n + 1;
}

刪除操作

int del(int a[], int n, int i) {
    if (i < 1 || i > n) {
        printf("刪除位置非法\n");
        return n;
    }
    // 從前往後覆蓋
    for (int j = i - 1; j < n - 1; ++j) {
        a[j] = a[j + 1];
    }
    return n - 1;
}

查詢操作

int search(int a[], int n, int x) {
    for (int i = 0; i < n; ++i) {
        if (a[i] == x) return i + 1;  // 返回 1-based 位置
    }
    return -1;
}

主程式互動流程

void main() {
    int n, a[MAX];
    printf("輸入陣列元素個數: ");
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) scanf("%d", &a[i]);
    
    int index, x;
    printf("請輸入插入位置和值: ");
    scanf("%d %d", &index, &x);
    n = insert(a, n, index, x);
    printArray(a, n);
    
    printf("請輸入刪除位置: ");
    scanf("%d", &index);
    n = del(a, n, index);
    printArray(a, n);
    
    printf("請輸入查詢元素: ");
    scanf("%d", &x);
    int pos = search(a, n, x);
    if (pos != -1) printf("%d 的位置: %d\n", x, pos);
    else printf("未找到 %d\n", x);
}

效能與限制分析

操作時間複雜度空間複雜度適用場景
插入O(n)O(1)小規模、低頻修改
刪除O(n)O(1)同上
查詢O(n)O(1)無序資料線性搜尋

改進方向

  • 動態記憶體分配 (malloc/realloc) 突破固定大小限制
  • 二分搜尋優化查詢 (需維持陣列有序)
  • 封裝為 ADT (抽象資料類型) 提供更清晰介面
  • 錯誤碼回傳替代 printf,分離邏輯與輸出
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved