数据结构(一)顺序表(学习ing)

重生之我 学习【数据结构之顺序表(SeqList)】 全新的开始,为大家带来数据结构的内容(C语言实现)将以顺序表、链表、栈区、队列、二叉树、常见排序算法为主要内容展开学习 阅读详情
  • 定义结构
  • 创建顺序表
  • 初始化顺序表
  • 插入元素
  • 删除元素
  • 销毁顺序表

定义结构

//定义结构
typedef int SeqType;//存储单元类型
typedef struct
{
    SeqType *elem;//存储空间基地址(类似数组首地址)
    int length;//当前长度
    int listsize;//当前分配的存储容量
}SqList;

typedef 用法:定义一种类型的别名,而不是简单的宏的替换,可以用作同时声明指针型的多个对象。

                       用typedef定义与平台无关的类型。

                       为复杂的声明定义一个新的简单的别名。(详细可参考http://blog.youkuaiyun.com/superhoy/article/details/53504472)


 

定义操作

创建顺序表

/*
*创建顺序表
*/
SqList(creatList_sq)()
{
    SqList *List = (SqList *)malloc(sizeof(SqList));
    return *List;
}

初始化顺序表

/*
*初始化顺序表
*返回1,表示初始化成功
*返回0,表示初始化失败
*/
int initList_sq(SqList &L)
{
    L.elem = (SeqType *)malloc(sizeof(SeqType)*LIST_INIT_SIZE);
    if(!L.elem)
        return 0;//内存分配失败,储存空间不够
    L.length = 0;//表示顺序表为空
    L.listsize = LIST_INIT_SIZE;//表示顺序表里,最大存储单元个数
    return 1;
}

插入元素

/*
*插入顺序表
*下标是负数就插入到结尾
*/
int insert_sq(SqList &L,inr index,SeqType val)
{
    if(index>L.length)
    {
        //存储的下表超出顺序表的实际长度
        printf("存储的下表超出顺序表的实际长度");
        return 0;
    }
    if(index<0)//下标是负数,插入到结尾
    {
        index=L.length;
    }
    if(L.length==L.listsize)
    {
        //顺序表的存储单元已经存满,将继续分配新的存储单元
        SeqType* newBase = (SeqType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(SeqType));//继续分配存储单元
        if(!newBase){
            //分配内存单元失败
            return 0;
        }
        L.elem=newBase;
        L.listsize +=LISTINCREMENT;
    }
    //寻找合适的插入位置,index后面的元素向后移动
    for(int i=L.length;i>index;i--){
        L.elem[i]=L.elem[i-1];//向后移动
    }
    L.elem[index]=val;//插入元素
    L.length++;
    return 1;
}
//realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。

参考博客:https://blog.youkuaiyun.com/flueky/article/details/52711668

数据结构之顺序表:顺序表的结构及基本操作 目录一、数据结构1.1 算法与数据结构的区别二、顺序表2.1 顺序表的基本形式【重点】2.2 顺序表的两种基本实现方式【重点】1、一体式结构:2、分离式结构:2.3 元素存储区替换与扩充1. 元素存储区的替换2. 元素存储区的扩充2.4 顺序表的操作1. 增加元素2. 删除元素2.5 Python中的顺序表 一、数据结构 数据结构指数据对象中数据元素之间的关系。 计算机只有三种数据类型:int、float、char。存储在内存中,1个int占4个字节。 1.1 算法与数据结构的区别 程序 = 数据结构 阅读详情

相关推荐

数据结构顺序表+单链表+二叉树+图等等各实验总汇.rar

因为实在有用所以分数较高,只是用于计算机专业

数据结构之顺序表

顺序表 一、创建表 个人理解,即先建个壳子,表明这是个顺序表,里面存的变量是什么类型。 代码如下 #include<stdio.h> #define MAXSIZE 100 typedef struct { int *elem; int length; }List; 二、初始化 将前面定义的变量定义为数组且分配空间大小。 代码如下 /***顺序表初始化***/ void InitList(List &L){ L.elem=new int[MAXSIZE]; L.leng

xiaoyungou的博客 384

多臂老虎机——入门强化学习

多臂老虎机(Multi-Armed Bandit,MAB)问题是强化学习的经典入门例子,也是理解探索与利用(exploration-exploitation)平衡的重要案例。

qq_56683019的博客 2458

数据结构 第3讲 顺序表

数据结构 第3讲 顺序表 顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入、删除时需要移动大量元素。 顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 结构体的定义: 结构体定义后,如果要定义个顺序表L,就可以写: SqLis

rainchxy的博客 4459

Project 编制进度计划【项目管理】

Project 项目管理编制进度计划详解。

m0_52861684的博客 5086

青藏高原冻土数据实战:如何用QGIS分析1961-2020年冻土退化趋势(附完整操作步骤)

本文详细介绍了如何使用QGIS分析1961-2020年青藏高原冻土退化趋势,包括数据准备、预处理、时空分析和模型验证等全流程操作。通过TTOP模型和Stefan方程,揭示了冻土退化的空间差异和海拔依赖性,为环境研究提供科学依据。

weixin_29276847的博客 127

线性表——顺序表 知识总结

顺序表的常用操作有建表、插入、删除、查找、打印等等。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; typedef int ElementType; const int MAXSIZE = 50; //最多存放5个元素 struct sqList { ElementType data...

qq_18841761的博客 1033

傅里叶变换实战:用Python手把手教你分析音频频谱(附完整代码)

本文详细介绍了如何使用Python实现傅里叶变换进行音频频谱分析,涵盖音频加载、预处理、FFT应用、频谱可视化及特征提取等关键步骤。通过实战案例和完整代码,帮助开发者掌握数字信号处理技术,特别适合音频分析和音乐信息检索领域的应用。

weixin_29090677的博客 150

数据结构【顺序表】

我们需要创建一个seqlist.h头文件,seqlist.c文件存放函数,还有一个.c的测试文件。

qq_67578580的博客 2514

Mac版Burp Suite专业版破解与汉化完整指南

在Web安全测试领域,Java应用程序的许可证验证机制与本地化实现是常见的技术课题。其原理通常涉及Java Agent技术,通过在JVM启动时动态修改字节码,实现对软件授权状态的校验逻辑进行拦截与重写,从而绕过官方验证。同时,软件界面的国际化(i18n)与本地化(l10n)则依赖于资源文件的替换与加载。从技术价值角度看,深入理解这些机制不仅能满足特定场景下的工具定制需求,更能加深对Java安全机制、软件保护与逆向工程的理解。在实际的工程实践中,安全研究人员与开发者常面临功能受限或语言障碍的挑战,尤其是在渗透

weixin_29327525的博客 1037

【EB_Tresos专题】-01-EB Tresos导入工程

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 6434

【数据结构】顺序表

本篇博客我们来总结下线性表中的顺序表有关知识,并通过C语言代码实现出一个顺序表若有问题 评论区见感兴趣就关注一下吧。

m0_74091744的博客 4622

手把手教你在飞牛 NAS 上部署自有图床,含Python调用接口

📸 想在飞牛 NAS 上部署图床?这篇教程超适合小白!从安装到使用,步骤清晰~

XiaoqiangClub的博客 2345

数据结构·顺序表

学习数据结构与算法之前,一般是先学数据结构,方便之后学习算法,那么数据结构拆开介绍,就是数据 和 结构,数据,生活中到处都是,结构,就是数据存储的方式,即。

更新各种计算机技能~ 1988

55、Mac OS X 10.2 安装、设置、卸载及故障排除全攻略

本博客全面解析了 Mac OS X 10.2 的安装、设置、卸载及故障排除方法。内容涵盖四种安装方式的适用场景及操作步骤、设置助手的详细配置流程、卸载注意事项与恢复建议,以及常见问题和进阶故障的解决办法。通过图文并茂的形式,帮助用户快速掌握 Mac OS X 10.2 的基础与高级操作,是使用该操作系统的实用指南。

qsc90123456的博客 151

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【数据结构初阶】--顺序表(一)

本篇博客介绍了数据结构中的顺序表概念与实现。主要内容包括:1)顺序表与线性表的关系,顺序表是物理结构连续的线性表;2)静态顺序表与动态顺序表的分类及差异;3)动态顺序表的三文件实现方式(.h声明、.c定义、test.c测试)。重点讲解了动态顺序表的初始化实现,强调传址调用的必要性。通过代码示例和重点提示帮助大家理解顺序表的底层实现原理。后续将介绍顺序表的增删查改等操作接口。

会当凌绝顶,一览众山小 7497

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数据结构--顺序表

顺序表是数据结构中线性表的一种存储结构。它按逻辑顺序依次存储数据元素,在内存中占据连续空间。从概念分类上,可分为静态顺序表和动态顺序表。前者大小固定,后者能按需调整容量,它们都具有随机访问特性,利于高效查找元素。

2402_88461821的博客 1614

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

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

Java——数据结构之顺序表

Java——数据结构之顺序表   在之前的学习中,我们主要了解了很多 Java 的 基本语法,但是 在之后的 Java学习中,了解 基础 数据结构的知识 非常重要,数据结构的思想 可以帮助我们更加清晰 明白的了解 Java 的解题思路等等。   今天我们就来开始学习 实现一个 Java 基础的 顺序表。 1.顺序表的简单了解   顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。   顺序表一般可以分为:   静态顺序表:使用

rain67的博客 6221

【数据结构】—— 顺序表

顺序表(Sequential List)是一种基本的数据结构,它通过一组连续的存储单元来存储具有相同类型的数据元素。

ElvInR的博客 1765

数据结构——顺序表

本文系统介绍了顺序表的数据结构实现方法。首先定义了顺序表的基本概念,区分了静态和动态顺序表的区别。重点阐述了动态顺序表的实现过程,包括初始化、增删改查等核心功能:1)详细讲解了尾插、头插两种插入方式;2)介绍了尾删、头删等删除操作;3)实现了指定位置插入删除功能;4)提供了查找和扩容机制。文章采用模块化设计方法,将顺序表功能分解为多个函数实现,并给出了完整的代码示例。最后强调了顺序表作为线性表基础数据结构的重要性,为后续学习更复杂的链表等数据结构奠定基础。

zhangzhangip的博客 1433

顺序表(一)(数据结构)

比如现在有一个数组包含数据1 2 3 4 ,那么现在我要删除4这个数据,我们知道size是指向有效数据的下一个位置,也就是4的后面一个位置,那么现在我让size--就会让size指向4的位置,当我们打印的时候这个位置的数据就不是有效的数据了,而且在尾部插入数据的时候在空间充足的时候我们是直接将新的数据元素之直接插在size的位置上,然后再让size++。但是在物理结构上并不一定是连续的,物理结构是数据在内存上的存储形式,线性表在物理结构上存储时,通常以数组和链式结构的形式存储。

OKkankan的博客 2337
上一篇: D - MaratonIME in the golden moment Gym - 101375D
下一篇: L - MaratonIME doesn't like odd numbers Gym - 101375L
RR-RR
博客等级 码龄10年 23粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值