线性表

【数据结构入门】顺序表(SeqList)详解(初始化、增、删、查、改) 文章目录(1)线性表(2)顺序表1)什么是顺序表2)顺序表的定义2)顺序表的接口实现1、初始化顺序表2、销毁(释放)顺序表3、检查顺序表容量是否满了,好进行增容3、顺序表尾插4、顺序表尾删5、顺序表头插6、顺序表头删7、打印顺序表8、在顺序表中查找指定值9、在顺序表指定下标位置插入数据10、在顺序表中删除指定下标位置的数据11、查看顺序表中有效数据个数12、修改指定下标位置的数据 (1)线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结 阅读详情

顺序表

特点:用一段地址连续的存储空间来依次顺序存放线性表中的各元素。是一种随机存储结构。

定义

typedef  struct{ 
	datatype data[MAXSIZE];    
	int len;
} SeqList; 
  • SeqList L:定义一个顺序表L
  • SeqList *L:定义一个指向SeqList 类型的指针

基本运算

1. 初始化 Init_SeqList
SeqList *Init_SeqList(){
	SeqList *L;
	L = malloc(sizeof(SeqList));
	L->len = -1;
	return;
}
2. 插入运算Insert_SeqList

实现步骤
(1)将an~ai == 顺序向后==移动一个位置,即an移动到an+1,……,ai移动到ai+1,为待插入的新元素让出位置i;
(2) 将 e 放到空出的第i个位置;
(3) 修改 len 指针,使之恒指向当前表中最后一个元素。

int  Insert_SeqList(SeqList *L,int i,datatype e){  
	int j;
	if (L->len ==MAXSIZE-1){  
		printf(“表满溢出”); 
		return -1; 
	}
	if (i<1 || i>L->len +2){  /*检查插入位置i是否有效*/
		printf("位置错");
		return 0; 
	} 
	for( j=L->len ; j>=i-1 ; j--)
		L->data[j+1]=L->data[j];  /* 结点往后移动一个位置 */
	L->data[i-1]=e;     /*新元素e插入*/
	L->len ++;         /*len仍指向最后元素*/
	return 1;     /*插入成功,返回*/
} 

时间复杂度:O(n)

  • 平均移动数据元素的次数(加权平均数):
    Ein = ∑i=1n+1\sum_{i=1}^{n+1}∑i=1n+1​ pi (n - i + 1)
  • 设为等概率情况,即pi = 1/(n+1),则:
    Ein = ∑i=1n+1\sum_{i=1}^{n+1}∑i=1n+1​ pi (n - i + 1) = 1n+1\frac{1}{n+1}n+11​∑i=1n+1\sum_{i=1}^{n+1}∑i=1n+1​(n - i + 1) = n2\frac{n}{2}2n​
  • 平均需要挪动一半的元素。
3. 删除运算Delete_SeqList
4. 按值查找Locate_SeqList


单链表

特点:通过一组任意的存储单元来存储线性表中的数据元素,“链”保存的是其直接后继所在存储单元的起始地址。是一种顺序存储结构。

定义

typedef struct node{
	datatype data;
	struct node *next;
} LNode, *LinkList;
  • LNode:结点类型
  • LinkList:指向LNode类型结点的指针类型

基本运算

1. 建立
(1)逆序建立单链表(头插法)
  • 设一个指针 L 始终指向单链表中的当前首结点(每插入一个结点,指针L向前移动一位,使其一直在首部)。
LinkList Creath_LinkList (){   
	LinkList L = NULL; /*空表,不指向任何地址*/
    LNode *s;
    int e;       /*设数据元素的类型为int*/
    scanf("%d", &e);
    while (e!=flag){     /*flag为设置的线性表数据元素结束标志*/
    	s = malloc(sizeof(LNode));  /*malloc()返回被分配内存的指针*/
        s->data = e; 
        s->next = L;  
        L = s;
        scanf ("%d",&e);
	}
    return L;
}
(2)顺序建立单链表(尾插法)
  • 设一个指针 r 始终指向单链表中的当前尾结点。
LinkList  Creatr_LinkList (){ 
	LinkList L = NULL;
    LNode *s, *r = NULL;
    int e;     /*设数据元素的类型为int*/
    scanf("%d",&e);
    while (e!=flag){ /*flag为设置的线性表数据元素结束标志*/
    	s = malloc(sizeof(LNode));     
       	s->data = e;
       	if(L==NULL)  L = s;  /*插入的结点是第一个结点*/
       	else  r->next = s;       /*插入的结点是其它结点*/
       	r=s;        /*r 恒指向新的尾结点*/
        scanf("%d",&e);
    }
    if( r!=NULL)  r->next = NULL; /*对于非空表,表尾结点的指针域置为空指针*/
    return L;
}
2. 求表长
  • 方法:设一个指针变量和计数器,初始化后,如果该指针变量所指结点后面还有结点,该指针变量向后移动,计数器同时加1,直至该指针变量指向表尾。
///带头结点的单链表
int  Length_LinkList1 (LinkList  L)
{ LNode  * p=L;   /* p指向头结点*/
   int  i=0;      /* i是计数器*/
   while (p->next) 
    {p=p->next; i++ }   /* p所指的正是第 i 个结点*/
   return  i;
}

///不带头结点的单链表
int  Length_LinkList2 (LinkList L)
{  LNode  * p=L;
   int  i;    /* i是计数器*/
   if (p==NULL) return  0;  /*空表的情况*/
   i=1;  /*在非空表的情况下,p所指的是第一个结点*/
   while (p->next ) 
    { p=p->next;  i++ }
   return  i;
}
3. 查找
4. 插入
(1)在某结点之后插入 O(1)

在这里插入图片描述

s->next = p->next;
p->next = s;
(2)在某节点之前插入 O(n)

在这里插入图片描述

//设单链表头指针为L
q = L;
while(q->next!=p) q = q->next;  /*找*p的直接前驱*/
s->next = q->next;
q->next = s;

总结

  • 若想在单链表上插入、删除一个结点,必须知道其前驱结点。
  • 不能按序号随机访问,只能从头结点开始顺着指针域顺序访问,该存取结构称为顺序存取结构。
  • 如何选择存储结构? 顺序表(频繁查找);链表(频繁插入和删除)。

循环链表

只需要将原来寻找表尾时判断指针是否为NULL改为判断指针是否指向头结点即可。
在这里插入图片描述

双向链表

单链表中寻找后继结点的时间复杂度是O(1),寻找前驱结点的时间复杂度是O(n)。
若为每个结点再增加一个指向前驱的指针域prior,寻找前驱结点的时间性能也能达到O(1) 。

定义

typedef struct  dunode{ 
	datatype data;
  	struct dunode *prior,*next;	
}DulNode, *DulLinkList;
//特征:q->prior->next = q = q->next->prior

在这里插入图片描述

插入

///关键:要保证链表不能断
///已知的地址:s、q、q->prior
s->prior=q->prior;
q->prior->next=s;
s->next=q;
q->prior=s;

在这里插入图片描述

删除

q->prior->next=q->next;
q->next->prior=q->prior;
free(q); 

在这里插入图片描述

线性表的应用:将所有在线性表Lb中但不在线性表La中的元素插入线性表La #include&amp;lt;iostream&amp;gt; #include&amp;lt;stdio.h&amp;gt; #include &amp;lt;malloc.h&amp;gt; using namespace std; #define MaxSize 50 typedef char ElemType; typedef struct { ElemType elem[MaxSize]; //存放顺序表中 阅读详情

相关推荐

C&C++线性表实训

第1关:顺序构建线性表 本关任务:按照数据输入的顺序构建一个线性表。即如果输入的3个结点数据分别为1、2、3,则构建的线性表包含3个结点,且从前往后的结点数据分别为1、2、3。 #include "linearList.h" node *insertTail(node *h, node *t) { if(h == NULL) // 空链表单独处理 { t->next = NULL; // 链表尾指针置为NULL return t; // 返回第一个结点

Junds0的博客 4036

Seqlist L 与 Seqlist *L的区别

SeqlistL结构体变量,SeqlistInsert之后不可以带回新的插入数据。 Seqlist*L是传结构体指针用SeqlistInsert之后可以有新的插入。 转载于:https://www.cnblogs.com/claudia529/p/10794300.html...

weixin_30633507的博客 5542

用STM32F407做个USB声卡:从CubeMX配置到播放录音全功能实战(附源码)

本文详细介绍了如何使用STM32F407开发板实现USB音频设备的全功能实战,包括CubeMX配置、硬件连接、音频流处理和性能优化。通过双缓冲DMA机制和音频数据处理流程,开发者可以构建高质量的USB声卡系统,适用于录音和播放场景。附源码,助力快速上手STM32音频开发。

weixin_30301449的博客 516

数据结构之线性表

目录线性表的概念 线性表的概念 线性表的定义: 线性表是n个类型相同数据元素的有限序列,对n>0,除第一元素无直接前驱、最后一个元素无直接后继外,其余的每个数据元素只有一个直接前驱和一个直接后继。 线性表的特点: (1)同一性。线性表由同类数据元素组成,每一个ai必须属于同一数据类型 (2)有穷性。线性表由有限个数据元素组成,表长度就是表中数据元素的个数。 (3)有序性。线性表中相邻数据元素...

L*YUE的博客 865

sentaurus学习笔记(HFET_pGate_GaN仿真)(五)

`(sdedr:define-constant-profile`和`(sdedr:define-constant-profile-region`命令用于定义并应用一个恒定的活性硼掺杂浓度剖面`"ndop_GaN_gate_const"`到氮化镓栅极层上,其值为`NpGaN_gate`。- `"Oxide"`指定了这一层的材料名称(在这里代表氧化层),而`"nucleation"`是这一层在仿真中的标识名称。- `"GaN"`指定了这一层的材料名称,而`"GaN_gate"`是这一层在仿真中的标识名称。

qq_52640792的博客 941

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 343

01、顺序表SeqList

SeqList.h #pragma once #define ListSize 100 typedef int DataType; typedef struct { DataType list[ListSize]; int length; }SeqList; void InitList(SeqList* L); int ListEmpty(SeqList L); int GetElem(SeqList L, int i, DataType* e); int LocateElem(SeqList L

大王怕我去巡山 1597

Selenium ChromeDriver反爬与性能优化实战指南

ChromeDriver作为Selenium的核心驱动,本质是浏览器自动化执行引擎,其默认行为会暴露大量JS运行时指纹(如navigator.webdriver、window.chrome),极易被前端反爬系统识别;同时因进程管理粗放、渲染等待机制僵化,导致内存泄漏、僵尸进程和高并发下稳定性崩塌。本文围绕真实生产场景,系统解析浏览器指纹伪造原理、进程级资源管控策略、基于页面状态的智能等待范式,并提供Docker容器化、K8s弹性扩缩与Prometheus可观测性落地路径,助力开发者将ChromeDriver

weixin_29762151的博客 1259

28335之中断(2)中断向量表

在每个例子的main函数里边都会初始化中断向量表,什么是向量表?InitPieVectTable()初始化函数可以在DSP280x_PieVect.c找到void InitPieVectTable(void) { int16 i; Uint32 *Source = (void *) &amp;PieVectTableInit; Uint32 *Dest = (void *) &amp;Pie...

weixin_38422044的博客 7281

[DA45] 使用PageRank算法分析希拉里邮件中的人物关系

一. 相关知识 (一) PageRank算法 PageRank 算法是 google 公司的创始人拉里·佩奇和谢尔·盖布林于1998年提出的网页搜索优化算法. 详细内容请见百度百科:google pagerank. 如果你了解了该算法, 就能明白上一段的超链接从本页面链出, 链入百度百科的 PageRank 算法页面增加了该页面...

Vincent_Chu的博客 2378

【机器学习与数据挖掘实战 | 医疗】案例18:基于Apriori算法的中医证型关联规则分析

本案例针对三阴乳腺癌患者,经问卷调查收集数据并筛选处理形成原数据,经清洗、特征选择与变换后,构建Apriori模型,基于业务理解与建模结果,分析患者症状与中医证型关联,并据症状给出建议 。

Morse_Chen的博客 1381

线性表概念_线性表的顺序表表示和实现_线性表的顺序存储

线性表基础概念,线性表的顺序表表示和实现 线性表 线性表(linear list)是最基本、最简单、也是最常用的一种数据结构。线性表是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。 特征 线性表是具有相同特征的数据元素的一个有限序列。 线性表(linear list)由n(n>=0)个数据元素(结点)a1,a2,…,an组成的有限序列 线性表中元素的个数n(n...

diviner_s的博客 5097

实战全解|大疆司空2二次开发:从接口开发到第三方业务系统深度融合

大疆司空2二次开发是实现行业无人机定制化应用的关键,通过OpenAPI后端对接+前端组件集成的组合方式,可快速完成功能定制,而与第三方业务系统的深度融合,能彻底打通“业务下发-设备执行-数据回传-流程闭环”的全链路,让无人机管控真正融入行业业务流程。开发过程中,建议优先采用私有版部署保障数据安全,通过中间适配层降低系统耦合度,结合实际业务场景打磨功能,避免过度开发。随着大疆开发者生态的完善,司空2的二次开发能力将持续升级,为更多行业无人机应用提供技术支撑。

2501_93651177的博客 979

C++线性表的基本操作

C++线性表的基本操作: 代码如下: #include<iostream> #include<stdlib.h> using namespace std; typedef int Elem; #define LIST_INST_SIZE 8 class List { public: List(int size);//构造函数 ~List();//析构函数,销毁 ...

weixin_43933077的博客 7115

camera QXXX架构

This article introduces the QCX camera architecture for Qualcomm’s latest automotive chips including SA8650. It elaborates the layered camera stack under QNX, HGY and HQX systems, covering client applications, stream manager, CamX components and hardware d

qq_39257814的博客 4546

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

线性表的插入

#include <stdio.h> #include <stdlib.h> #define MAXSIZE 20 #define OK 1 #define ERRO 0 typedef int ElemType;//元素类型重命名 typedef int Status;//状态重命名 /*创建线性表结构体 ...

qq_37422050的博客 4628

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

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

线性表的应用—线性表的合并

通过输入要取值的元素的位置来进行取值,并将取到的结果赋给同种变量类型e,在这里e同时也要使用引用传递,因为将取到的值赋给变量e后,e的值已经发生改变了。利用两个线性表LA和LB分别表示集合A和集合B,然后遍历线性表LB中的所有元素,将每一次遍历的元素取出,再和线性表LA中的元素逐一比较,如果线性表LA中。元素的查找要使用逐一对比,从第一个元素开始依次与传进的值e进行对比,如果相同,返回i+1,如果没有与传入元素相同的值,返回0,具体代码实现如下。线性表的展示直接利用循环,遍历输出线性表中元素的值即可。

m0_74472474的博客 1240

深度学习工具包 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")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

线性表的总结

一.线性表( Linear List )的定义:线性表是零个或多个具有相同类型的数据元素的有限序列。数据元素的个数定义为线性表的 长度 。长度等于零时称为空表,一个非空表通常记为 L = ( a 1 , a 2 ,……, a n ) 其中, a i ( 1 ≤ i ≤ n )称为数据元素,下标 i 表示该元素在线性表中的位置或序号, 称元素 a i 位于表的第 i 个位置,或称 a i 是表中的第...

hzcx777的博客 1282

线性表 (一) 线性表定义与线性表插入与删除

本文主要通俗地介绍了线性表的特征

qq_44639974的博客 1452

线性表代码

package 线性表和链表; //线性表 public class SqList<E> { private Object[]data;//存储数据元素 private int length;//线性表当前长度 private int maxSize;//数组长度 最大存储空间 public SqList(){ data=new Object[20]; length=0; //也可以直接使用 this(20)

梵高话葵 263

c语言两个线性表la lb,线性表La和线性表Lb合并

线性表La与Lb合并。输入:两个线性表La和Lb.过程:循环集合B中的每个元素,判断当前元素是否存在A中,若不存在,则插入到A中即可。输出:合并后的线性表La。代码如下#includeusing namespace std;#define MAXSIZE 100#define ElemType inttypedef struct{ElemType Data[MAXSIZE];int length;...

weixin_32752827的博客 3995

逆置线性表(线性表)

Problem A: 逆置线性表(线性表) Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 228  Solved: 118 [Submit][Status][Web Board] Description (线性表)请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1)。 Input 输入长度n

u013629228的专栏 3994
上一篇: 绪论
下一篇: 程序执行的两种方式——编译和解释
qq_32955607
博客等级 码龄11年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值