C语言数组,顺序表的初始化,添加,删除和打印

数据结构-顺序表详解(C语言版) 顺序表概念及结构 概念: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 注意:在顺序表中数据的存储是依次的。 顺序表的动态存储 如果空间不够,则进行增容。 顺序表的实现(C语言版本) 顺序表功能: 各功能的实现: 零:头文件部分 #pragma once #include<stdio.h> #include <assert.h> #include <st... 阅读详情
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define maxsize 10//数组最大长度

typedef struct array
{
    int data[maxsize];
    int last;//指向数组中当前存储的最后一个数据
}arr,*parr;

void set_arr_null(arr *pseq);
void init_arr(arr *pseq);
int add_arr_element(arr *pseq);
int del_arr_element(arr *pseq);
void print_arr_element(arr *pseq);

int main()
{
    arr *pbuf=(arr *)malloc(sizeof(arr));
    if(NULL==pbuf)
    {
        printf("pbuf malloc failed\n");
        return -1;
    }

    //设置顺序表为空
    set_arr_null(pbuf);

    //初始化顺序表
    init_arr(pbuf);

    while(1)
    {
        printf("\t1:添加数组元素\n\t2:删除数组元素\n\t3:查看数组元素\n\t4:退出\n");
        printf("请输入选项:");
        int sel=0;
        scanf("%d",&sel);
        getchar();
        switch(sel)
        {
            case 1:
                add_arr_element(pbuf);
                break;
            case 2:
                del_arr_element(pbuf);
                break;
            case 3:
                print_arr_element(pbuf);
                break;
            case 4:
                exit(0);
            default:
                printf("reinput 1-4\n");
        }
    }

    return 0;
}

void set_arr_null(arr *pseq)
{
    pseq->last=0;
}

void init_arr(arr *pseq)
{
    int i=0;
    for(i=0;i<maxsize;i++)
    {
        pseq->data[i]=0;
    }
}

int add_arr_element(arr *pseq)
{
    printf("%p %p",pseq->data,&pseq->last);
    printf("last:%d maxsize:%d\n",pseq->last,maxsize);
    if(pseq->last+1>maxsize)
    {
        printf("overflow\n");
        return -1;
    }
    printf("请输入添加的位置(从1开始)和数值:\n");
    int pos=0;
    int val=0;
    scanf("%d %d",&pos,&val);
    if(pos>pseq->last+1)
    {
        printf("请在1--%d之间添加数值\n",pseq->last+1);
        return -1;
    }
    int i=0;
    for(i=pseq->last;i>=pos;i--)
    {
        pseq->data[i+1]=pseq->data[i];
    }
    pseq->data[i+1]=val;
    pseq->last++;

    return 0;
}

int del_arr_element(arr *pseq)
{
    if(NULL==pseq)
    {
        printf("pseq null\n");
        return -1;
    }

    if(pseq->last<=0)
    {
        printf("underflow\n");
        return -1;
    }
    int pos=0;
    printf("请输入删除的位置(从1开始):\n");
    scanf("%d",&pos);
    if(pos>pseq->last)
    {
        printf("只能在1--%d之间删除\n",pseq->last);
        return -1;
    }

    int i=0;
    for(i=pos;i<pseq->last+1;i++)
    {
        pseq->data[i]=pseq->data[i+1];
    }
    
    pseq->last--;

    return 0;
}

void print_arr_element(arr *pseq)
{
    int i=0;
    if(pseq->last==0)
    {
        printf("array null\n");
        return;
    }
    for(i=1;i<pseq->last+1;i++)
    {
        printf("%d ",pseq->data[i]);
    }
    printf("\n");
}
数据结构 怎样用C语言制作一张顺序表的 顺序表 按顺序存储的线性表叫顺序表(array - based list),通过创建数组来建立。顺序表的的元素是紧挨着的,见下图: 0 1 2 3 4 5 6 7 8 9 26 48 32 13 53 62 43 26 11 86 这个线性表的表长为10,即储存了10个元素,用数组表示如下: int a[10] = {26,48,32,13,53,62,43,26,11,86}... 阅读详情

相关推荐

数据去重复_京东商品评论情感分析|文本数据预处理

本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意。所以对于文本评论数据先进行文本预处理是必不可少的一步,把大量的、冗余的、无价值的信息去除,可以极大提高文本数据的质量,精确文本分析结果。1 文本去重1.1文本去重的原因文本数据预处理时,首先应去除文本评论数据中反...

weixin_34556808的博客 2074

顺序表初始化

1. 顺序表 顺序表(顺序存储结构) 存储数据时,会提前申请一整块足够大小的物理空间,然后将数据按照次序依次存储到一整块连续的存储空间,存储时做到数据元素之间不留一丝缝隙 使用顺序表存储集合 {1,2,3,4,5},数据最终的存储状态如图所示: 1.1. 顺序表的初始化 顺序存储结构需要如下三个属性: 存储空间的起始地址:数组的起始地址 顺序表的最大存储容量:数组长度size 顺序表的当前长度,也就是表中存储数据元素的个数:length 自定义顺序表结构的C代码: typedef struct Tab

Lianuuu的博客 1万+

FREERTOS+LWIP+IAP实现TCP、HTTP、网页访问并固件升级、更新配置 (三)lwip实现httpd服务并在web访问

在前两篇文章中配置freeRTOS和,并实现了TCP、UDP的通信协议,现在终于轮到重头戏lwip的httpd服务,LWIP官方例程中是有很多自带的网页的,但是远远不够满足实际项目的使用需求,因此我也是踩了很多坑,从前端网页制作,到网络通信的实现,到后端数据处理,从头开始学起,也是学习到了很多没接触过的东西,本章将搭建LWIP的HTTP服务使得浏览器可以访问WEB。

wangjiaheng0716的博客 2965

数据结构(初阶)—— C语言实现顺序表

顺序表各种接口实现

M的博客 7853

AnyLogic 8.8.3 最新版安装指南:从下载到配置的完整流程(附Java环境设置技巧)

本文提供了AnyLogic 8.8.3最新版从下载到配置的完整安装指南,重点解决了跨平台(Windows、macOS、Linux)部署中的常见问题。核心内容详细讲解了Java开发环境(JDK)的精准配置技巧,包括版本选择、系统环境变量设置与验证,确保为仿真建模工作奠定稳固基础。

efc1234567的博客 761

WPS和Excel通用!省市区四级联动下拉菜单保姆级教程(附最新行政区划数据包)

本文详细介绍了在WPS和Excel中实现省市区四级联动下拉菜单的完整教程,包含2024年最新行政区划数据的获取与整理方法。通过名称管理器和INDIRECT函数的组合,以及WPS的特色功能,帮助用户高效准确地录入四级行政区划信息,提升数据录入效率并减少错误。

s1t2u3的博客 611

【数据结构(C语言)】顺序表的定义,实现初始化、创建、插入、增、删、改、查等基本操作(详细)

顺序表是在计算机内内存中以数组的形式保存的线性表, 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、 使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中, 即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系, 采用顺式存储结构的线性表通常称为顺序表。 相对于链式存储结构而言,顺式存储结构显得更为简单。 顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 顺序表的基本运算有: 初始化 查找 插入 删除 输.

DuFengYa的博客 1万+

OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程

🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰

XiaoqiangClub的博客 5577

数据结构的顺序存储结构——顺序表(一) 顺序表的初始化(C语言)

顺序存储结构 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。 初 初始化 使用顺序表存储数据: 1.要申请足够大小的物理空间; 2.顺序表申请的存储容量; 3.顺序表的长度,也就是表中存储数据元素

weixin_43903780的博客 5835

图神经网络在金融风险传播分析中的应用

《图神经网络在金融风险传播分析中的应用》 摘要 本文旨在探讨图神经网络(Graph Neural Networks, GNN)在金融风险传播分析中的应用。首先,本文简要介绍了图神经网络的基本概念、发展历史以及其在各类应用场景中的重要性。接着,详细介绍了图神经网络的核心算法,包括图卷积神经网

AI天才研究院 1279

Pandas滚动窗口的妙用:动态计算列数据的最大值

Pandas的滚动窗口(rolling window)功能是数据分析中处理时间序列数据的重要工具。本文通过实例演示了如何使用rolling(window=4).max()计算DataFrame列A的滚动最大值,并将结果存入新列Max_Range。该方法会在4个元素的滑动窗口内计算最大值,前3行因数据不足显示为NaN。这种技术广泛应用于金融分析(如股价波动)、数据平滑和趋势识别等场景,能有效帮助分析数据的动态变化特征。示例展示了从数据准备到结果输出的完整流程,体现了Pandas在处理滑动窗口计算时的高效性和便

m0_74337424的博客 53

顺序表的初始化【C语言】

/*By yangbocsu 线性表之顺序表 2021.07.14*/ #include <stdio.h> #include "stdlib.h" /*预定义常量和类型*/ /*函数结果状态码*/ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 /.

少年一贯快马扬帆,道阻且长不转弯; 要盛大,要绚烂,要哗然; 要用理想的泰坦尼克,去撞现实的冰川; 要当烧赤壁的风,而非借鉴草船; 要为了一片海,就肯翻万山。 3554

C#上位机开发揭秘:从新手到大神的蜕变之路,代码实例全解析!

上位机通常是与硬件设备(如嵌入式系统、PLC、传感器等)进行通信的计算机程序。它的作用是通过某种通信协议(如串口、TCP/IP 等)向设备发送命令,并接收设备的反馈数据。上位机需要有一个图形用户界面(GUI)来展示数据或控制硬件设备。通过本篇教程,我们介绍了 C# 上位机开发的基本步骤,从串口通信的实现,到图形用户界面的构建,再到进阶功能的实现。作为上位机开发的新手,掌握这些基础知识是非常重要的。而随着经验的积累,你可以逐步尝试更复杂的功能,比如多线程处理、数据分析与存储等。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 4828

C语言-顺序表实现的例子

C语言笔记—顺序表实现的例子 利用顺序表建立一个顺序表结构体,实现顺序表的初始化、添加数据、插入数据、删除数据、获取数据、获取元素个数、打印、遍历、排序、销毁操作。 SeqType.h文件: #include<stdbool.h> #ifndef __SEQLIST_H__ #define __SEQLIST_H__ //顺序表结构体 typedef int SeqType; type...

kuanyew的博客 1064

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

c语言 数据结构 顺序表

c语言顺序表 运行结果测试 测试结果 代码 #include<stdio.h> #include<stdlib.h> typedef int DataType; typedef struct List{ DataType *data; //元素 int Max_SIZE; //数组的最大容量值 初始化后默认大小为16 int lengh; //当前数组的长度 const float GROWTH_FACTOR = 0.75; // 增长因子,当数组的长.

owlNo46的博客 275

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

线性表--顺序表的增删查改

顺序表的增删查改

qq_53606315的博客 61

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

波奇学数据结构:顺序表

波奇学数据结构:顺序表和链表

Boki 222

C语言实现顺序表的创建及基本操作

今天主要是分享一下我在学习数据结构的顺序表时实现的一些基本操作,以及学习过程当中遇到的一些问题。我觉得学习这一部分内容的时候,除了要掌握基本操作方法的编写,还要学会对方法进行**实例化**。由于课本上这一部分的内容比较少,我也是查阅了优快云上的许多文章才明白的。

weixin_43954729的博客 2万+

顺序表的基本操作:初始化,创建新表,删除元素,插入元素,定位元素,打印顺序表,返回长度

该程序实现了一个顺序表的基本操作: int InitList_Sq(); //初始化线性表 void CreateSqList(); //创建线性表 void ListInsert(); //向线性表中插入值 void ListDelete(); //删除顺序表中的数据元素 void PrintList(); ...

qq_42092076的博客 5873

C语言—顺序表(含通讯录项目)

C语言—顺序表(含通讯录项目)

2302_81120572的博客 3566

C语言实现顺序表(数据结构)

以下是我们需要实现的顺序表的功能。 以下是写在SeqList.h中的内容,我们将全部需要声明的内容放在此处 pragma once #include <stdio.h> #include <assert.h> #include <stdlib.h> typedef int SLDateType; typedef struct SeqList { SLDateType* a; size_t size;// 当前存储的数据个数 size_t c

芊樱烛渊的博客 1万+

C语言实现顺序表

/在写之前,我们先来讲解一下思路:当我们向头部插入元素的时候,不仅要让元素成功的插入到数组中,还要保证数组中原来的元素不会丢失,因此,我们要将原数组的元素统一向后面移动一位再将要插入的元素插入到头部位置就可以了(这里有一个点需要我们大家注意一下,就是我们在进行向后移动的时候,要从后面开始,往前进行循环移动元素操作)。//在进行尾插操作之前还要先看一下数组中的空间够不够,如果不够,则需要再重新扩充空间或开创空间,否则,无法进行尾插操作。

2301_81390458的博客 1504

顺序表(C语言实现)

顺序表 文章目录顺序表一、**顺序表的基本概念**二、动态顺序表的具体实现1. 顺序表初始化2. 顺序表尾插3. 顺序表头插4. 顺序表尾删5. 顺序表头删6. 顺序表任意位置插入7. 顺序表任意位置删除8. 顺序表查找9. 顺序表修改10. 顺序表打印11. 顺序表销毁三、完整代码 一、顺序表的基本概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表分为以下二类: 1.静态顺序表:使用定长数组存储元素。 #define N

trqii_的博客 6308

【 数据结构 】顺序表的实现 - 详解(C语言版)

目录 前言 线性表: ​ 顺序表: 概念及结构: 顺序表的实现: 头文件:SeqList.h realloc函数讲解: 具体函数的实现:SeqList.c 顺序表的初始化: 顺序表的打印: 容量的检查: 顺序表的尾插: 顺序表的尾删: 顺序表的头插: 顺序表的头删: 在顺序表的指定位置插入数据: 在顺序表的指定位置删除数据: 顺序表的查找: 顺序表的修改: 顺序表的销毁: 数组越界的检查: 前言 简单用C语言来描述数据结构中的顺序表......

上上谦. 的博客 8535

顺序表C语言版

文章目录1.线性表2.顺序表2.1概念及结构2.2接口实现2.2.1 SeqList.h2.2.2 SeqList.c2.2.2.1 初始化顺序表 1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 2.顺序表 2.1概念及结构 顺序表是用一

iwkxi的博客 3953

【C语言14】C语言实现顺序表(这可能是优快云有史以来讲解最详细的顺序表)

顺序表什么是顺序表官方定义:顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中**顺序表和数组同样是连续的空间数组必须提前开辟好空间,而顺序表可以随开随用。

南喵的博客 1258
上一篇: C语言单链表的3种排序算法,插入排序,冒泡排序,选择排序
下一篇: C语言链式栈和顺序栈的实现
卫水金波
博客等级 码龄12年 73粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值