10.5 顺序表实践

5.顺序表 顺序表的定义和特点 顺序表的定义 把线性表中的所有元素按照其逻辑顺序依次存储在一块连续的存储空间中,就得到顺序表。线性表中第一个元素的存储位置就是顺序表被制定的存储位置,第i个元素(1≤i≤n)的存储位置紧接着在第i-1个元素的存储位置之后。假设顺序表中每个元素的数据类型DataType,则每个元素所占用存储空间的大小(字节数)相同,均为sizeof(DataType),整个顺序表所占用的存储... 阅读详情

内容:

实现书中代码

代码功能:

创建顺序表、插入、删除、查找、输出

代码内容:

#include<stdio.h>
#include<malloc.h>
#define LIST_INIT_SIZE 100//线性表初始分配空间的容量
#define LISTINCREMENT 10//线性表增加分配空间的量
#define ERROR 0
#define OK 1
#define OVERFLOW -2
typedef int ElemType;
typedef int Status;

typedef struct
{
	ElemType* elem;
	int length;
	int listsize;
}SqList;

Status SqList_Create(SqList& L, int n)//创建一个长度为n的顺序表L
{
	L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配预定大小的空间
	if (!L.elem)//如果空间分配失败
		return OVERFLOW;
	L.listsize = LIST_INIT_SIZE;
	L.length = n;
	for(int i = 0;i < L.length;i++)
		scanf_s("%d", &L.elem[i]);//输入顺序表中各个元素
	return OK;
}
Status SqList_Insert(SqList& L, int i, ElemType e)//在顺序表L中第i个元素前插入新元素e,其中i的合法值是1<=i<=n+1
{
	if (i<1 || i>L.length + 1)//插入位置不正确
		return ERROR;
	if (L.length >= L.listsize)//顺序表L空间已满
		return OVERFLOW;
	for (int j = L.length - 1;j >= i - 1;j--)
		L.elem[j + 1] = L.elem[j];//将第i个元素及后续元素位置向后移一位
	L.elem[i - 1] = e;//在第i个元素位置处插入新元素e
	L.length++;//顺序表L的长度加1
	return OK;
}
Status SqList_Delete(SqList& L, int i, ElemType& e)//在顺序表L中删除第i个元素,并用e返回值,其i的合法值是1<=i<=n
{
	if (i<1 || i>L.length)//删除位置不正确
		return ERROR;
	e = L.elem[i - 1];
	for (int j = i;j <= L.length - 1;j++)
		L.elem[j - 1] = L.elem[j];//将第i+1个元素及后继元素位置向前移一位
	L.length--;//顺序表的长度减1
	return OK;
}

int SqList_Search(SqList L, ElemType e)//在顺序表中查找值为e的元素,如果找到,则函数返回该元素在顺序表中的位置,否则返回0
{
	int i;
	for (i = 1;i <= L.length && L.elem[i - 1] != e;i++);//从第i个元素起依次将每个元素值与给定值e比较
	if (i <= L.length)
		return i;
	else
		return 0;
}

void SqList_Output(SqList L)//输出顺序表L中各个元素值
{
	for (int i = 0;i < L.length;i++)
		printf("%d ", L.elem[i]);
	printf("\n");
}

int main()
{
	SqList L;
	int i, n;
	ElemType e;

	scanf_s("%d", &n);//输入顺序表的长度
	SqList_Create(L, n);
	SqList_Output(L);//输出顺序表中各元素值
	scanf_s("%d", &i);//输入插入位置
	scanf_s("%d", &e);//输入待插入元素值
	if (SqList_Insert(L, i, e) == 1)
		SqList_Output(L);//输出插入后的顺序表
	else
		printf("Intsertion failed!\n");

	scanf_s("%d", &i);//输入删除位置
	if (SqList_Delete(L, i, e) == 1)
	{
		SqList_Output(L);//输出删除后的顺序表
		printf("%d\n", e);
	}
	else
		printf("Deleteion failed!\n");

	scanf_s("%d", &e);//输入待查找元素值
	if (SqList_Search(L, e))
		printf("%d Search succeeded!\n", SqList_Search(L, e));//输出查找到的元素所在的位置
	else
		printf("Search failed!\n");
	return 0;
}

代码思路:

1、编写主体架构:

引入头文件、定义常/变量、定义顺序存储结构、创建顺序表、编写输出模块、创建主函数

#include<stdio.h>
#include<malloc.h>
#define LIST_INIT_SIZE 100
#define ERROR 0
#define OK 1
#define OVERFLOW -2
typedef int ElemType;
typedef int Status;

typedef struct
{
	ElemType* elem;//线性表存储空间的基地址
	int length;
	int listsize;
}SqList;//动态的顺序存储结构类型名

Status SqList_Create(SqList& L, int n)//创建一个长度为n的顺序表L
{
	L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配预定大小的空间
	if (!L.elem)//如果空间分配失败
		return OVERFLOW;
	L.listsize = LIST_INIT_SIZE;
	L.length = n;
	for(int i = 0;i < L.length;i++)
		scanf_s("%d", &L.elem[i]);//输入顺序表中各个元素
	return OK;
}

void SqList_Output(SqList L)//输出顺序表L中各个元素值
{
	for (int i = 0;i < L.length;i++)
		printf("%d ", L.elem[i]);
	printf("\n");
}

int main()
{
    
    return 0;
}
(1)引入头文件
#include<stdio.h>//引入标准输入输出库
#include<malloc.h>//引入内存分配库
(2)定义常/变量
#define LIST_INIT_SIZE 100//定义表容量
#define ERROR 0//定义状态码
#define OK 1//定义状态码
#define OVERFLOW -2//定义状态码
typedef int ElemType; // 元素类型定义为整型
typedef int Status; // 状态类型定义为整型
(3)定义顺序存储结构
typedef struct
{
	ElemType* elem;//线性表存储空间的基地址
	int length;
	int listsize;
}SqList;//动态的顺序存储结构类型名
(4)创建顺序表
Status SqList_Create(SqList& L, int n)//创建一个长度为n的顺序表L
{
	L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配预定大小的空间
	if (!L.elem)//如果空间分配失败
		return OVERFLOW;
	L.listsize = LIST_INIT_SIZE;
	L.length = n;
	for(int i = 0;i < L.length;i++)
		scanf_s("%d", &L.elem[i]);//输入顺序表中各个元素
	return OK;
}
①代码思路:
构建函数原型
Status SqList_Create(SqList& L, int n)

包括返回类型、名称、参数类型

在SqList& L中,&为C++用法,表示引用。引用&有丰富的内涵及用法,在此我只将其理解为创建一个名为L的线性表,长度为n

编写函数体

分配存储空间、判定、设置初始值、输入数据、返回状态码

{
	L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配预定大小的空间
	if (!L.elem)//如果空间分配失败
		return OVERFLOW;
	L.listsize = LIST_INIT_SIZE;
	L.length = n;
	for(int i = 0;i < L.length;i++)
		scanf_s("%d", &L.elem[i]);//输入顺序表中各个元素
	return OK;
}

内存分配malloc,模板:指针 = (数据类型*)malloc(数组大小 * sizeof(数据类型));

其中第一个*,(ElemType*)表示的是强制类型转换,因为原本malloc函数的返回值类型为void*,而此处的L.elem为(ElemType*)类型,故需强制转换。

而第二个*则表示的是乘法,(LIST_INIT_SIZE * sizeof(ElemType)表示数量*空间大小,得到需要分配的存储空间大小,用sizeof函数获得ElemType所占的字节大小(此处ElemType为int型,4字节)

关于为什么可以直接使用 &L.elem[i],而不需事先定义 L.elem为数组

在 C 或 C++ 中,数组和指针之间存在密切的关系

  1. 动态数组:

    • 当你通过 malloc 或 new 为 L.elem 分配内存时,你创建了对这块内存的动态分配,而不是在栈上定义一个固定大小的数组。

    • 例如,L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType)); 是在堆上分配内存,这段内存可以看作是一个连续的区域,能够存储 LIST_INIT_SIZE 个 ElemType 类型的元素。

  2. 指针算术:

    • L.elem 是一个指向 ElemType 的指针,它指向分配的内存的开始位置。

    • 由于 L.elem 是指针,你可以使用数组下标语法来访问这块内存中的元素,比如 L.elem[i]。

即,当为L.elem分配内存后,指针L.elem指向一个连续的空间,可等同于开辟了一块数组空间,由此可用数组的方式输入数据

(5)编写输出模块
void SqList_Output(SqList L)//输出顺序表L中各个元素值
{
	for (int i = 0;i < L.length;i++)
		printf("%d ", L.elem[i]);
	printf("\n");
}
(6)创建主函数
int main()
{
    
    return 0;
}

2、编写功能模块:增删(改)查

(1)增(插入)
        ①代码逻辑:

判断插入位置是否正确、判满、移位、插入、增加表长、返回状态码

Status SqList_Insert(SqList& L, int i, ElemType e)//在顺序表L中第i个元素前插入新元素e,其中i的合法值是1<=i<=n+1
{
	if (i<1 || i>L.length + 1)//插入位置不正确
		return ERROR;
	if (L.length >= L.listsize)//顺序表L空间已满
		return OVERFLOW;
	for (int j = L.length - 1;j >= i - 1;j--)
		L.elem[j + 1] = L.elem[j];//将第i个元素及后续元素位置向后移一位
	L.elem[i - 1] = e;//在第i个元素位置处插入新元素e
	L.length++;//顺序表L的长度加1
	return OK;
}
        ②代码解读
判满

如果目前表长大于等于设定表长,则空间已满,返回溢出码

if (L.length >= L.listsize)//顺序表L空间已满
		return OVERFLOW;
tips:

使用>=而非使用==的原因:

  1. 当前长度和容量的关系:L.length 表示当前线性表中元素的数量,而 L.listsize 表示分配的空间容量。因此,当 L.length 等于 L.listsize 时,表已经满了,不能再插入新元素。而当 L.length 超过 L.listsize 时,依然会发生溢出,这是不允许的。所以 >= 是更安全的判断条件。

  2. 避免潜在的溢出:使用 >= 可以确保在容量已满的情况下,不会进行插入操作。如果使用 ==,只会在完全满的时候返回溢出状态,但如果其他部分代码不当处理,导致 L.length 误增加到大于 L.listsize,可能会引发未定义行为或内存错误。

(2)删
        ①代码逻辑:

输入待删除元素位置、判断输入是否正确、记录要删除的元素、使用循环进行覆盖删除、更新长度

        Tips:

覆盖删除的实现:

  1. 覆盖元素: 当你删除一个元素时(例如位置 i 的元素),代码并不会真正将该元素的内存释放,而是将该元素后面的所有元素向前移动一位,以覆盖被删除的元素。这种移动是通过循环实现的。

  2. 更新长度: 删除操作通过减少线性表的长度来反映当前有效元素的数量,而不是改变内存的分配。这样,原本的 elem 数组仍然在内存中,未被释放,只是表示该位置的元素不再有效。

Status SqList_Delete(SqList& L, int i, ElemType& e)//在顺序表L中删除第i个元素,并用e返回值,其i的合法值是1<=i<=n
{
	if (i<1 || i>L.length)//删除位置不正确
		return ERROR;
	e = L.elem[i - 1];
	for (int j = i;j <= L.length - 1;j++)
		L.elem[j - 1] = L.elem[j];//将第i+1个元素及后继元素位置向前移一位
	L.length--;//顺序表的长度减1
	return OK;
}
(3)查
        ①代码逻辑:

输入待查找元素值、使用for循环在表内查找、判断该元素是否在表内

int SqList_Search(SqList L, ElemType e)//在顺序表中查找值为e的元素,如果找到,则函数返回该元素在顺序表中的位置,否则返回0
{
	int i;
	for (i = 1;i <= L.length && L.elem[i - 1] != e;i++);//从第i个元素起依次将每个元素值与给定值e比较
	if (i <= L.length)
		return i;
	else
		return 0;
}
        ②代码解读:
for (i = 1;i <= L.length && L.elem[i - 1] != e;i++);

该查找代码只有一行,末端以分号“;”结尾,而无需其他语句。这是因为该代码仅用括号内的内容就可实现查找功能。

形式为:使用计数器,采用循环遍历的方式对表内元素进行比对,并用计数器i进行进度记录。若待查找元素不在表内,则该语句会遍历整个表,最终计数器i的值将会大于表长,以此判断待查找元素是否在表内。

3、编写主函数

int main()
{
	SqList L;
	int i, n;
	ElemType e;

	scanf_s("%d", &n);//输入顺序表的长度
	SqList_Create(L, n);
	SqList_Output(L);//输出顺序表中各元素值
	scanf_s("%d", &i);//输入插入位置
	scanf_s("%d", &e);//输入待插入元素值
	if (SqList_Insert(L, i, e) == 1)
		SqList_Output(L);//输出插入后的顺序表
	else
		printf("Intsertion failed!\n");

	scanf_s("%d", &i);//输入删除位置
	if (SqList_Delete(L, i, e) == 1)
	{
		SqList_Output(L);//输出删除后的顺序表
		printf("%d\n", e);
	}
	else
		printf("Deleteion failed!\n");

	scanf_s("%d", &e);//输入待查找元素值
	if (SqList_Search(L, e))
		printf("%d Search succeeded!\n", SqList_Search(L, e));//输出查找到的元素所在的位置
	else
		printf("Search failed!\n");
	return 0;
}
(1)代码逻辑:

定义所需常/变量、演示功能

4、注意事项

编写代码演示模块的时候务必使用printf语句进行操作提示,以免不知道自己进行到了哪一步

数据结构之顺序表:顺序表的结构及基本操作 目录一、数据结构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 算法与数据结构的区别 程序 = 数据结构 阅读详情

相关推荐

6-5 顺序表基本操作 (10 分)

该题来源与PTA(PTA是一个千名教师建设,拥有万道高质量题目,百万用户拼题的程序设计实验辅助教学平台)。 题目的具体要求如下: 本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数...

King 1162

顺序表详解

目录 一、线性表的概念 二、顺序表 1、顺序表的概念 1). 静态顺序表:使用定长数组存储元素。 2). 动态顺序表:使用动态开辟的数组存储。 三、接口实现 1、创建 2、初始化 3、扩容 4、尾插 5、打印 6、销毁 7、尾删 越界: 8、头插 9、头删 10、任意位置插入 11、删除任意位置 12、查找 13、修改 一、线性表的概念 【百度百科】 线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是...

weixin_65132948的博客 2万+

顺序表应用5:有序顺序表归并

题目描述 已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。 输入  输入分为三行: 第一行输入m、n(1 第二行输入m个有序的整数,即为表A的每一个元素; 第三行输入n个有序的整数,即为表B的每一个元素; 输出  输出为一行,即将表A、B合并为表C后,依次输出表C所

xxxchic 1269

顺序表

顺序表是什么呢? 顾名思义,顺序表是物理地址连续的存储单元依次存储数据的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。 顺序表和数组有什么区别呢? 顺序表比数组更约束,顺序表物理地址上必须连续存储,数组是顺序表在实际编程中的具体实现方式。 顺序表分为静态顺序表和静态顺序表(主要区别在于他们的容量是否可变) 静态顺序表 静态顺序表的概念: 顺序表的容量在静态时期(编译期间)确定,大...

Outtch_的博客 4001

国产AI芯动力:复旦微FMQL100TAI900 FPGA原型验证板全解析

本文全面解析了复旦微FMQL100TAI900 FPGA原型验证板在国产AI硬件领域的创新突破。该板卡采用全栈国产化设计,具备出色的AI推理性能、视频处理能力和接口生态,特别适合工业质检、智能交通等场景。文章详细介绍了其芯片架构、存储子系统、接口扩展及电源设计,并分享了实战开发经验,为开发者提供了一套可靠的国产计算平台解决方案。

weixin_29250573的博客 456

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 241

实现顺序表——实践报告

一、实验目的: 1、复习C语言程序设计中的知识。 2、掌握线性表的顺序存储结构的表示和实现方法。 3、掌握顺序表基本操作的算法实现。 二、实验内容: 1.建立顺序表。 2.在顺序表上实现插入、删除和查找等操作。 三、实验要求: 1. 编写实现顺序表的基本算法(初始化、查找、插入、删除等)的函数,并在此基础上设计一个主程序完成如下功能: ⑴初始化一个顺序表L,数据元素类型可任选; ⑵建立顺序表L,要求数据元素至少10个; ⑶输出顺序表L的长度; ⑷按位置查找:输出顺序表L的第i个

why 1452

解决鸿蒙/荣耀设备GMS应用调试中的“Play保护机制认证”报错

本文详细解析了在鸿蒙或荣耀设备上调试GMS应用时,遇到“Play保护机制认证”报错的根本原因与解决方案。核心在于获取设备的GMS Device ID,并通过Google官方渠道完成临时注册,从而绕过认证限制。文章提供了无需Root和ADB查询两种具体方法,并分享了授权后的故障排查与实战经验,帮助开发者高效解决问题。

weixin_29288313的博客 298

【顺序表】顺序表的就地逆置

编写算法实现顺序表的就地逆置,即利用原顺序表的存储单位把数据元素顺序反向,例如:1,5,6,9,8逆置为 8,9,6,5,1 题目分析:   就地逆置,就是指借用顺序表自身实现顺序逆置,不借助其他线性表。   如果让你口算从1+2+3+4+5+……+99,你会怎么计算呢?很显然,折半加法,将1到99分成两半,1+99=10,2+98 = 100,3+97=100,4+96=100,……,49+51 = 100,50,所以一共49个100,加上最后50,最终答案为4950。 之所以和大家

chaim16的博客 1万+

PSIM仿真实战:反激电源从设计到调试的完整流程(附短路保护配置)

本文详细介绍了使用PSIM仿真工具进行反激电源从设计到调试的完整流程,包括变压器参数设计、功率器件选型、动态特性调试以及短路保护配置。通过实战案例和仿真技巧,帮助工程师提前暴露并解决设计中的常见问题,如负载突变、输入电压波动和短路保护失效等,显著降低硬件试错成本。

weixin_29216353的博客 243

STM32 ST-LINK Utility 无法烧录程序的解决方法

当你打开STM32 ST-LINK Utility,硬件连接好st-link V2,打开了要烧写的文件,点那个Program verify烧录时, 如果出错了: Programming error @ 0x08000000! 我的方法是: 点你想要烧录那个HEX文件的小格,复制 然后去到你前面的文件的格子里,点粘贴: 成功! ...

wocute的博客 9521

《C++》解密--顺序表

是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈......,也就是连续的一条直线;顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储。的,线性表在物理上储存时,通常是数组、链式结构等形式。,对数组的封装,实现了常用的增删改查等接口。顺序表是线性表的一种。

2301_78136992的博客 1869

使用AI预测彩票的架构思路

彩票是随机的数字游戏,不要过度依赖AI,本文仅供娱乐研究

淘淘小窝 9407

6-1 顺序表的查找操作 (10分)

6-1 顺序表的查找操作 (10分) 本题要求实现一个函数,要求从顺序表中查找指定元素,并返回第一个查找成功的元素在表中的位置序号,若查找失败,则返回0; 函数接口定义: int LocateElem(SqList L,ElemType e); 其中SqList结构定义如下: typedef struct{ ElemType *elem; int length; }SqList; 裁判测试程序样例: #include <stdio.h> #include <stdlib.h>.

green_hand11的博客 7196

ABAP CDS View 从入门到精通教程目录:ABAP CDS View 在 SAP 技术体系中的重要地位

学习 ABAP CDS View 的开发技术,体会其背后的设计理念,也就掌握了 SAP S/4HANA 底层数据模型的设计精髓。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4775

槽型光电开关传感器原理图设计,已量产(光电传感器)

在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收器之间的光路实现电平切换,电路简单且抗干扰性优于漫反射式光耦。今天分享一个实际项目中落地的槽型光电开关检测电路,从器件选型到逻辑设计都做了简化适配,适合小批量原型或低成本产品的需求。

不脱发的程序猿 716

【3329】顺序表应用5:有序顺序表归并

顺序表应用5:有序顺序表归并 Time Limit: 100ms   Memory limit: 800K  有疑问?点这里^_^ 题目描述 已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。 输入  输入分为三行: 第一行输入m、n(1 第二行输入m个有序的整数,即为表A

DLFbest的博客 1745

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

顺序表的实现

目录 1.顺序表的概念 2.静态顺序表 分析: 3.动态顺序表 分析: 4.顺序表初始化 5.顺序表尾部操作 5.1尾插 空间检查函数实现 分析: 5.2尾删 分析: 6.顺序表的头部操作 6.1头插 分析: 6.2头删 分析: 7.固定位置操作 7.1固定位置插入 分析: 7.2固定位置删除 分析: 8.查找及打印 9.销毁顺序表 10.我的菜单及主函数 直接上代码: 1.顺序表的概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素...

weixin_53316121的博客 3180

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

深入解析顺序表以及顺序表的功能实现

顺序表是一种线性表的存储结构,用一组物理地址连续的存储单元依次存储数据元素。其逻辑上相邻的元素在物理位置上也相邻,通常采用数组实现。顺序表的底层是数组,也就是说顺序表存储数据时用的是数组,对顺序表的增添删改,修改的是数组。123456顺序表那么顺序表和数组是什么关系呢?顺序表是数组在逻辑层面的抽象和扩展。数组提供存储基础,顺序表在此基础上增加了操作和管理的逻辑,更适合实际应用需求。//存储数据//有效数据个数//空间大小//};

2503_91432867的博客 814

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DS:顺序表的实现

感谢各位友友的支持!目前我的博客进行到了DS阶段,在此阶段首先会介绍一些数据结构相关的知识,然后再进行顺序表的学习。学习数据结构是为后面的通讯录项目打基础。

白乐天_ξ( ✿>◡❛)的博客 1432

详解动态顺序表

路虽远,行则至。速度虽慢,坚持则是答案

X_do_myself的博客 1102

C++数据结构 —— 顺序表

C++数据结构、手巧顺序表

2401_87692970的博客 1520

顺序表的那些事儿

数组是由数据类型相同的的一系列元素组成,并且存储在一个连续的内存块中,并且通过索引来访问。数组是。

weixin_73086307的博客 851
下一篇: 10.7 顺序表功能拓展
Prometheus_17
博客等级 码龄2年 73粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值