C语言顺序表操作:插入、查找、翻转示例

本文提供了一个使用 C 语言实现顺序表操作的示例代码,包括初始化、插入元素、查找元素和翻转顺序表等功能。代码示例清晰易懂,并包含详细的注释,适合初学者学习和参考。

输入数据格式:

  • 第1行是一个整数 n,表示顺序表元素个数。
  • 第2行是 n 个整数,用这 n 个整数构造顺序表。
  • 第3行和第4行输入两个待查找的数据元素的值。

输出结果:

  • 依次输出顺序表中数据元素,每个元素以换行结束。
  • 然后输出2个被查找元素的位置(未找到返回 0)。
  • 最后输出被翻转后的顺序表的所有元素。

代码示例:

#include <stdio.h>

#define MAX_SIZE 100

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

// 初始化顺序表
void init(SeqList *L) {
    L->length = 0;
}

// 插入元素到顺序表中
int insert(SeqList *L, int elem) {
    if (L->length >= MAX_SIZE) {
        return -1;  // 顺序表已满
    }
    
    L->data[L->length] = elem;
    L->length++;
    return 0;
}

// 查找元素在顺序表中的位置
int search(SeqList L, int elem) {
    for (int i = 0; i < L.length; i++) {
        if (L.data[i] == elem) {
            return i + 1;  // 返回位置,从1开始计数
        }
    }
    return 0;  // 未找到返回0
}

// 翻转顺序表
void reverse(SeqList *L) {
    int left = 0;
    int right = L->length - 1;
    
    while (left < right) {
        int temp = L->data[left];
        L->data[left] = L->data[right];
        L->data[right] = temp;
        
        left++;
        right--;
    }
}

int main() {
    SeqList L;
    init(&L);
    
    int n;
    scanf('%d', &n);
    
    for (int i = 0; i < n; i++) {
        int elem;
        scanf('%d', &elem);
        insert(&L, elem);
    }
    
    int searchElem1, searchElem2;
    scanf('%d %d', &searchElem1, &searchElem2);
    
    // 输出顺序表中的数据元素
    for (int i = 0; i < L.length; i++) {
        printf('%d\n', L.data[i]);
    }
    
    // 输出查找元素的位置
    printf('%d\n', search(L, searchElem1));
    printf('%d\n', search(L, searchElem2));
    
    // 翻转顺序表
    reverse(&L);
    
    // 输出被翻转后的顺序表中的数据元素
    for (int i = 0; i < L.length; i++) {
        printf('%d\n', L.data[i]);
    }
    
    return 0;
}

**注意:**以上代码实现了初始化顺序表、插入元素、查找元素、翻转顺序表等基本操作。在实际使用中,还需要考虑错误处理、边界情况等。

C语言顺序表操作:插入、查找、翻转示例

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

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