C语言顺序表操作:插入、查找、翻转示例
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;
}
**注意:**以上代码实现了初始化顺序表、插入元素、查找元素、翻转顺序表等基本操作。在实际使用中,还需要考虑错误处理、边界情况等。
原文地址: https://www.cveoy.top/t/topic/bAnS 著作权归作者所有。请勿转载和采集!