顺序表的学习

顺序表的基本操作 文章目录一,线性表的定义二,线性表的顺序存储结构1.定义2.属性3.区别4.地址计算方法三,顺序表的基本操作1 .初始化2.插入操作3.删除操作4.查找操作5.优缺点四,顺序存储和链式存储的区别 一,线性表的定义 线性表:零个或多个数据元素的有限序列。 注意:元素之间有顺序,并且是有限的。 如图 线性表元素的个数 n( n >= 0 ) 定义为线性表的长度,当 n = 0 时,称为空表。 ... 阅读详情

线性表的顺序存储结构:

一段地址连续的存储单元依次存储线性表的数据元素,可以用一维数组来实现顺序存储结构,线性表不能超过存储容量(数组的长度);

顺序表的描述三属性:

1、存储空间的起始位置

2、表的最大存储容量(数组的长度)

3、线性表的当前长度

应当遵循的是:当前长度 < = 存储容量

顺序表结构的操作(插入、删除、查阅)

插入操作从表尾开始到要插入的位置(包括),节点往后移动,最后记得表长度加1

void charu(int n,int data)
{
	int j;
	if(n<1 || (n>sp.listw+1) || (sp.listw>=sp.listmax))//当插入的位置比1小 或 插入的位置远远超过表尾 或 表尾已经是表的最大值时
	{
		printf("非法!\n");
		return;
	}
	else if((n==sp.listw+1) && (sp.listw<sp.listmax))//当插入的位置是表尾且表尾小于表的最大值时
	{
		sp.num[n-1]=data;//将数据写到表尾
		sp.listw++;//表尾加一
		return;
	}
	else//当插入的位置不是表尾且不是非法的位置时
	{
		for(j=sp.listw-1;j>=n-1;j--)//将人数数的习惯变为数组的下标,从表尾开始
		{
			sp.num[j+1]=sp.num[j];//往后移动
		}
		sp.num[n-1]=data;
		sp.listw++;
	}
}

删除的操作则是从要删除的位置往后一个节点开始到表尾(包括),往前移动,最后表尾减1

void shanchu(int n)
{
	int j;
	if((n<1) || (n>sp.listw))//删除的位置比1小或者大于表尾时
	{
		printf("非法!\n");
		return;
	}
	else if(n==sp.listw)//当删除的位置是表尾
	{
		sp.num[n-1]=0;
		sp.listw--;
		return;
	}
	else//当删除的位置不是表尾且不是非法的位置时
	{
		for(j=n;j<=sp.listw-1;j++)//将人数数的习惯变为数组的下标,从删除的位置下一个开始
		{
			sp.num[j-1]=sp.num[j];
		}
		sp.listw--;
	}
}

查阅

int chayue(int n)
{
	int m;
	if((n<1) || (n>sp.listw))
	{
		printf("非法!\n");
		return;
	}
	else
	{
		m=sp.num[n-1];
		return m;
	}
}

总和

#include<stdio.h>
typedef struct studen
{
	int num[10];
	int listw;//表尾长度
	int listmax;//表的空间最大值
}splist;
splist sp;
void xianshi()
{
	int i;
	for(i=0;i<sp.listw;i++)
	{printf("%d ",sp.num[i]);}
	putchar('\n');
	printf("********************************************\n");
}
void write()
{
	int i;
	for(i=0;i<5;i++)
	{
		sp.num[i]=i;
	}
	sp.listw=i;
	sp.listmax=10;
	return;
}
void charu(int n,int data)
{
	int j;
	if(n<1 || (n>sp.listw+1) || (sp.listw>=sp.listmax))//当插入的位置比1小 或 插入的位置远远超过表尾 或 表尾已经是表的最大值时
	{
		printf("非法!\n");
		return;
	}
	else if((n==sp.listw+1) && (sp.listw<sp.listmax))//当插入的位置是表尾且表尾小于表的最大值时
	{
		sp.num[n-1]=data;//将数据写到表尾
		sp.listw++;//表尾加一
		return;
	}
	else//当插入的位置不是表尾且不是非法的位置时
	{
		for(j=sp.listw-1;j>=n-1;j--)//将人数数的习惯变为数组的下标,从表尾开始
		{
			sp.num[j+1]=sp.num[j];//往后移动
		}
		sp.num[n-1]=data;
		sp.listw++;
	}
}
void shanchu(int n)
{
	int j;
	if((n<1) || (n>sp.listw))//删除的位置比1小或者大于表尾时
	{
		printf("非法!\n");
		return;
	}
	else if(n==sp.listw)//当删除的位置是表尾
	{
		sp.num[n-1]=0;
		sp.listw--;
		return;
	}
	else//当删除的位置不是表尾且不是非法的位置时
	{
		for(j=n;j<=sp.listw-1;j++)//将人数数的习惯变为数组的下标,从删除的位置下一个开始
		{
			sp.num[j-1]=sp.num[j];
		}
		sp.listw--;
	}
}
int chayue(int n)
{
	int m;
	if((n<1) || (n>sp.listw))
	{
		printf("非法!\n");
		return;
	}
	else
	{
		m=sp.num[n-1];
		return m;
	}
}
void main()
{
	int cha_yue;
	printf("建立的顺序表为:");
	write();
	xianshi();
	printf("插入第二后的顺序表为:");
	charu(2,99);//在第二个位置插入99
	xianshi();
	printf("删除第二后的顺序表为:");
	shanchu(2);//删除位置为2
	xianshi();
	printf("查阅第二的数据为:");
	cha_yue=chayue(2);
	printf("%d\n",cha_yue);
}

Xilinx GTY Transceiver时钟方案与功耗优化实践 本文详细解析了Xilinx GTY Transceiver的时钟方案设计与功耗优化实践,涵盖从基础配置到高速24.33024Gbps和中速10.1376Gbps的实战案例。通过Transceivers Wizard的IP设计技巧和动态功耗优化方法,帮助工程师有效降低FPGA系统功耗,提升高速串行通信的稳定性与效率。 阅读详情

相关推荐

SoIC、CoWoS、InFO一次讲透:从2D/2.5D/3D看懂先进封装

先进封装是后摩尔时代提升芯片性能的关键路径,但面对SoIC、CoWoS、InFO这些名词,很多人容易混淆。理解它们,需从最基本的2D、2.5D、3D封装概念入手:2D是传统平房,2.5D通过硅中介层实现高密度互连,3D则让芯片直接堆叠。CoWoS作为2.5D中介层封装,已成为AI芯片与HBM高带宽存储集成的行业标准;SoIC通过铜-铜混合键合实现真正的3D堆叠,为逻辑与缓存提供极致带宽;InFO以扇出型封装兼顾成本与集成度,广泛用于移动SoC。在系统级封装(SiP)和CPO共封装光学等前沿趋势中,这些技术往

weixin_42388898的博客 311

数据结构(二)——线性表的顺序表

线性表就是一对一的关系。线性表分为,顺序表和链表(即是按物理结构划分的)。 顺序表是物理地址相邻的,看起来像是数组的定义。不过,顺序表和数组也有不同。 顺序表的属性是: ——有存储空间的起始位置data,即是一个数组的首地址(这也就是数组了); ——线性表有一个变量标记最大存储容量,MaxSize; ——有一个变量标记当前的长度,length。 后两个属性,恰恰体现了顺序表和数组的本质区别。顺序表...

qq_38181811的博客 307

Ubuntu20.04下Pycharm的快速安装与配置指南

本文提供了一份详细的Ubuntu 20.04系统下PyCharm社区版的安装与配置指南。文章重点介绍了通过手动下载.tar.gz压缩包进行安装的灵活方法,并涵盖了系统准备、依赖安装、首次运行、创建快捷方式以及解释器配置等关键步骤,帮助Python开发者快速搭建高效、可控的本地开发环境。

weixin_28831341的博客 379

顺序存储(顺序表)

1.顺序存储方式 线性表的顺序存储结构,就是在内存中找到一块空间,通过占位的方式,把一定内存空间给占了,然后把相同数据类型的数据元素依次存放在这块空间中,既然线性表的每个数据元素的类型相同,所以C语言(其他语言也相同)用一维数组来实现顺序存储结构,即把第一个数据元素存到数组下标为0的位置中,接着把线性表相邻的元素存储在数组中相邻的位置。 2.顺序存储的属性 三个属性: 存储空间的起始...

zhang21722668的博客 2万+

告别代码恐惧!用KRobot图形化编程,10分钟搞定Arduino巡线小车(附完整接线图)

本文介绍如何使用KRobot图形化编程工具快速搭建Arduino巡线小车,无需编写代码。从硬件准备到逻辑构建,详细讲解传感器数据处理、电机控制优化及高级功能扩展,帮助教育工作者和创客爱好者10分钟内完成项目。

weixin_30632089的博客 395

workbench拓扑优化教程_拓扑优化实例-轮毂的优化

拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可...

weixin_39581739的博客 3043

顺序表概念及操作

线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面的概念,不能混淆。 线性表的顺序存储称为顺序表。它是一组地址连续的存储单元。这使得逻辑上相邻的两个元素在物理位置上也相邻。 线性表的顺序存储类型描述为: 静态分配: #define MaxSize 50 //定义线性表的最大长度 typedef struct { ElemType data[Ma

松松的博客 877

PHP+txt文件存储简易留言板

留言板共三个文件: index.php---展示留言内容和收集表单 write.php---向txt文件写入数据 message.txt---存储留言数据 index.php用于展示留言内容、通过表单把用户输入的数据POST给write.php,write.php把内容写入message.txt。 index.php代码: <?php //设置时区 date_defau...

仿站、源码搭建/迁移技术博客 1031

Java 顺序表-创建、有序表插入

设计能存储int型元素的顺序表类SeqList。要求: 顺序表的最大容量在创建顺序表对象时指定; 实现从尾部追加(输入一组数,以-1结束)、打印顺序表的所有元素、插入元素至指定位置等基本操作。 实现向升序表中插入元素x,插入后依旧是升序表 import java.util.Scanner; class SeqList{ //顺序表=数组+表长 int [] a; int size; int len; SeqList(int x){ size = x; a=new int [x]; }

m0_46527503的博客 3636

jdbc从入门到精通(全)

前言 Java语言连接数据库(Java DataBase Connectivity) 面向接口/抽象编程(降低程序的耦合度,提高程序的扩展力)类似多态机制

码农研究僧的博客 1758

Cadence virtuos安装教程

本文详细介绍了在Ubuntu 18.04系统上安装Cadence Virtuoso IC617及MMSIM的完整流程。主要内容包括:1)系统环境准备(安装JDK及相关依赖包);2)通过创建软链接和修改系统文件实现RedHat环境兼容;3)共享目录文件操作与分卷压缩包合并解压技巧;4)使用InstallScape工具的安装步骤详解,包括权限处理和配置选项。特别提醒需注意系统兼容性处理(如创建redhat-release文件)和分卷压缩包的特殊解压方法(cat合并)。整个安装过程涉及大量Linux命令操作,需特

wangjie36的博客 298

深入学习顺序表

创建头文件 seqlist.h ,函数文件 seqlist.c 以及主文件 test.c在我前面的一篇博客(扫雷)中有一样的操作 ,此操作是为了让每个文件可以有自己的功能,方便管理。那这个seqlist.h要包含相应的头文件以及声明相应的函数,这里不做解释,直接给出代码。//定义动态顺序表的结构int size;//顺序表的初始化//打印函数//尾插//头插//尾删//头删//在指定位置之前插入//删除指定位置的数据//查找//销毁。

Jp1026的博客 572

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

顺序表学习与项目实例

顺序表的学习与项目实列

qq_52214204的博客 798

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

总结:顺序表的学习

分享一下这段时间我对顺序表学习的感悟! 首先,顺序表是线性表的一种,与它同分支的是链表,二者本质上是不同的,前者是类似于数组的连续存储一系列元素的线性表,而后者是通过指针进行连接各结点的非连续的线性表。 主要用到了typedef struct来对结构体数组进行名称简化,其次建表算法,移位算法,有序表的归并,表中数据的查找,都非常重要。 需要注意的是: 顺序表有三个重要的属性: ...

weixin_34308389的博客 553

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

学习笔记-顺序表

【代码】学习笔记-顺序表。

weixin_46065214的博客 193

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

数据结构学习-顺序表

一、顺序表的基本概念1、顺序表的定义(1)线性表:顺序表是线性表的一种。线性表是由 n个具有相同数据类型的元素组成的有限序列,其逻辑结构为线性结构,而物理结构则不一定是线性的,通常由数组(线性物理结构)和链式结构存储。(2)顺序表:顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素。学习顺序表不仅是掌握一种存储方式,更是培养计算思维和算法设计能力的重要步骤。后续可对比学习链式存储(如链表),体会不同结构的适用场景。

2501_90375011的博客 685

数据结构学习——顺序表插入

数据结构插入元素的操作

xiaosusushuai的博客 450

数据结构 顺序表学习

今天借了同学的一本严蔚敏老师编写的《数据结构》,这也是广为人知的经典教材。对于初学者容易上手。 上午一直在看机器视觉相关的文献,所以就利用下午和晚上的时间把线性表中的 顺序表看了一遍,把相关程序跑了一下,这几天再把与链表相关的掌握一下,刚开始还是很简单的,后面的红黑树,图章节可能要费点时间了,毕竟学过好久了,很多概念,算法已经模糊了。希望这个暑假能坚持下来吧,希望能一直更新下去,有所收获。 源...

想飞上天的胖子 288

C++学习——顺序表(一)

本文为《C++学习》的第1篇文章,今天学习习顺序表。

weixin_72870689的博客 314

学习笔记—数据结构—顺序表

顺序表是一种线性表的存储结构,它使用一组地址连续的存储单元依次存储线性表的数据元素。在顺序表中,逻辑上相邻的元素在物理存储上也相邻,通常采用数组来实现这种存储方式。●随机访问:可以通过首地址和元素序号在常数时间内找到指定的元素。●存储密度高:由于每个结点只存储数据元素,没有额外开销,因此存储密度较高。●物理位置相邻:物理位置和逻辑位置一致,保持相邻,但这也意味着插入和删除操作可能涉及到大量元素的移动。顺序表主要分为动态和静态,由于静态局限性,在这主要实现动态顺序表。动态顺序表主要运用。

2401_83231468的博客 618

C++学习——顺序表(六)

本文为《C++学习》的第篇文章,今天是顺序表的最后一篇总结,通过leetcode来练习顺序表的枚举。

weixin_72870689的博客 972

C++学习——顺序表(三)

本文为《C++学习》的第13篇文章,今天来做Leetcode的三道题,来熟悉顺序表下标的获取。

weixin_72870689的博客 245

C++学习——顺序表(五)

本文为《C++学习》的第15篇文章,今天通过几道leetcode的题目来练习顺序表的插入操作。

weixin_72870689的博客 338

数据结构顺序表——顺序表 学习笔记

假设线性表中每个元素占用k个字节的存储空间,线性表的起始地址为LOC(a1​),那么第i个元素ai​的存储地址LOC(ai​)可以通过公式LOC(ai​)=LOC(a1​)+(i−1)×k计算得出。查询这个数据时就可以直接用这个地址找到这个数据,因此无论访问线性表中的哪个元素,其时间复杂度都是O(1),就像数组直接用下标访问一下。线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继,其他元素都有前驱和后继。线性表具有线性结构,具有线性结构的有,线性表、栈、队列、字符串、数组和广义表。

c13540858685的博客 172

C++数据结构学习记录:顺序表

C++数据结构学习,仅作为个人纪录

2302_82190012的博客 700
上一篇: 单链表的学习
下一篇: 关于栈的学习
甘甜的话梅
博客等级 码龄7年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值