C语言线性表:插入、删除、查找操作详解

线性表是最基本的数据结构之一,理解线性表的插入、删除、查找操作是掌握数据结构和算法的基础。

本文提供一份完整的C语言线性表实现代码,包含插入、删除、查找等操作,并附带详细的代码注释,帮助你快速上手。

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

#define MAX_SIZE 100

typedef struct {
    int data[MAX_SIZE];
    int length;
} List;

// 初始化线性表
void initList(List *list) {
    list->length = 0;
}

// 在指定位置插入元素
int insertElement(List *list, int position, int value) {
    if (position < 0 || position > list->length || list->length == MAX_SIZE) {
        return -1; // 插入位置无效或线性表已满,返回-1表示插入失败
    }
    
    // 将插入位置及之后的元素后移一位
    for (int i = list->length-1; i >= position; i--) {
        list->data[i+1] = list->data[i];
    }
    
    list->data[position] = value; // 在插入位置插入新元素
    list->length++; // 线性表长度加1
    
    return 0; // 返回0表示插入成功
}

// 删除指定位置的元素
int deleteElement(List *list, int position) {
    if (position < 0 || position >= list->length || list->length == 0) {
        return -1; // 删除位置无效或线性表为空,返回-1表示删除失败
    }
    
    // 将删除位置之后的元素前移一位
    for (int i = position+1; i < list->length; i++) {
        list->data[i-1] = list->data[i];
    }
    
    list->length--; // 线性表长度减1
    
    return 0; // 返回0表示删除成功
}

// 查找指定值在线性表中的位置
int searchElement(List *list, int value) {
    for (int i = 0; i < list->length; i++) {
        if (list->data[i] == value) {
            return i; // 返回元素在线性表中的位置
        }
    }
    
    return -1; // 表示未找到指定值
}

int main() {
    List myList;
    initList(&myList);
    
    // 在位置1插入元素5
    insertElement(&myList, 1, 5);
    
    // 删除位置0的元素
    deleteElement(&myList, 0);
    
    // 查找元素5在线性表中的位置
    int position = searchElement(&myList, 5);
    
    if (position != -1) {
        printf('元素5在线性表中的位置为:%d\n', position);
    } else {
        printf('元素5未找到\n');
    }
    
    return 0;
}

代码说明:

  1. 结构体定义: 使用 struct 定义了一个名为 List 的结构体,包含一个整型数组 data 用于存储线性表元素,以及一个整型变量 length 用于记录线性表的长度。
  2. 初始化: initList 函数用于初始化线性表,将线性表长度设置为0。
  3. 插入: insertElement 函数在指定位置插入元素。
  4. 删除: deleteElement 函数删除指定位置的元素。
  5. 查找: searchElement 函数查找指定值在数组中的位置,如果找到则返回对应下标,否则返回 -1。
  6. 主函数: main 函数演示了如何使用上述函数进行线性表的插入、删除和查找操作。

希望本文能够帮助你更好地理解线性表的插入、删除、查找操作。

C语言线性表:插入、删除、查找操作详解

原文地址: https://www.cveoy.top/t/topic/lsI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录