线性表顺便表示增删改查(静态数组版)

简介: 线性表顺便表示增删改查(静态数组版)

线性表定义(my.h文件):

#ifndef _MY_H
#define _MY_H
#define MaxSize 10
#include <stdio.h>
#include <stdbool.h>
typedef struct {
    int data[MaxSize];
    int length;
} SqList;
int getInput();
void InitList(SqList *L);
_Bool ListInsert(SqList *L, int add);
_Bool ListDelete(SqList *L, int add);
_Bool GetElem(SqList *L, int add);
_Bool LocateElem(SqList *L, int e);
void PrintList(SqList L);
#endif


线性表操作方法(my.c文件):

#include "my.h"
/**
 * 输入函数
 * @return
 */
int getInput() {
    printf("请输入整数 \n");
    int temp;
    scanf("%d", &temp);
    return temp;
};
/**
 * 初始化链表
 * @param L
 */
void InitList(SqList *L) {
    int i;
    (*L).length = 0;
    for (i = 0; i < 5; ++i) {
        (*L).data[i] = getInput();
        (*L).length++;
    }
}
/**
 * 按位插入
 * @param L
 * @param add
 * @return
 */
_Bool ListInsert(SqList *L, int add) {
    int i;
    if (add > (*L).length || add > MaxSize) {
        printf("插入位置不合法 \n");
        return false;
    }
    for (i = (*L).length; i >= add; --i) {
        (*L).data[i] = (*L).data[i - 1];
    }
    (*L).data[add - 1] = getInput();
    (*L).length++;
    return true;
}
/**
 * 按位删除
 * @param L
 * @param add
 * @return
 */
_Bool ListDelete(SqList *L, int add) {
    int i;
    if (add > (*L).length || add > MaxSize) {
        printf("删除位置不合法 \n");
        return false;
    }
    for (i = add; i < (*L).length; ++i) {
        (*L).data[i - 1] = (*L).data[i];
    }
    (*L).data[i] = 0;
    (*L).length--;
    return true;
}
/**
 * 按位查找
 * @param L
 * @param add
 * @return
 */
_Bool GetElem(SqList *L, int add) {
    int i;
    if (add > (*L).length || add > MaxSize) {
        printf("查找位置不合法 \n");
        return false;
    }
    printf("查找位置%d的元素为:%d\n", add, (*L).data[add - 1]);
    return true;
}
/**
 * 按值查找
 * @param L
 * @param e
 * @return
 */
_Bool LocateElem(SqList *L, int e) {
    int i;
    for (i = 0; i < (*L).length; ++i) {
        if ((*L).data[i] == e) {
            printf("元素为%d的位置为:%d \n", e, i + 1);
            return true;
        }
    }
    printf("无此元素~\n");
    return false;
}
/**
 * 打印输出
 * @param L
 */
void PrintList(SqList L) {
    int i;
    for (i = 0; i < L.length; ++i) {
        printf("%d \n", L.data[i]);
    }
}


main.c文件

#include <stdio.h>
#include "my.h"
int main() {
    SqList l;
    InitList(&l);
    putchar('\n');
    ListInsert(&l, 4);
    putchar('\n');
    PrintList(l);
    putchar('\n');
    ListDelete(&l, 5);
    putchar('\n');
    PrintList(l);
    LocateElem(&l, 3);
    GetElem(&l, 5);
    return 0;
}

输入

请输入整数 
1
请输入整数 
2
请输入整数 
3
请输入整数 
4
请输入整数 
5
请输入整数 
6


输出

1 
2 
3 
6 
4 
5 
1 
2 
3 
6 
5 
元素为3的位置为:3 
查找位置5的元素为:5
Process finished with exit code 0
目录
相关文章
|
1月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
38 1
|
1月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
70 5
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
33 5
|
2月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
1月前
|
JavaScript 前端开发 测试技术
[新手入门]todolist增删改查:vue3+ts版本!
【10月更文挑战第15天】[新手入门]todolist增删改查:vue3+ts版本!
|
2月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
1月前
|
Java API 数据库
Data jpa 增删改查的方法分别有哪些
Data jpa 增删改查的方法分别有哪些
|
3月前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
47 1
|
3月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
3月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
下一篇
无影云桌面