线性表的定义和基本操作(三)

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 线性表的定义和理解,和一些基本的操作,并且有例题

定义

线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,一般表示为:L = (a1,a2,a3,...,an)

注:

  • 所有的相同的数据类型意味着每个数据元素所占空间一样大
  • 各个数据元素有顺序而且是有限的
  • ai是线性表中的第i个元素线性表的位序
  • a1是表头元素,an是表尾元素

线性表的基本操作

  • InitList(&L):初始化表,构造一个空的线性表L,分配内存空间
  • DestroyList(&L):销毁操作,销毁线性表,并释放线性表L所占用的内存空间
  • ClearList(&L):将已经存在的线性表L重置为空表
  • ListInsert(&L,i,e):插入操作,在表L中的第i个位置上插入指定元素e
  • ListDelete(&L,i,&e):删除表L中的第i个位置的元素,并用e返回删除元素的值
  • LocateElem(L,e,compare()):按值查找操作:在表L中查找具有给定关键字值的元素,compare()数据元素判定函数
  • GetElem(L,i):按位查找操作:获取表L中的第i个位置的元素的值
  • Length(L):求表长,返回线性表L的长度,即L中数据元素的个数
  • PrintList(L):输出操作,按前后顺序输出线性表L的所有元素值
  • Empty(L):判空操作,若L为空表,则返回true,否则返回false

数据结构中的引用参数 &

听得最多解读和贴近生活的就是:这就像是在一栋楼房中找人,&是按入住人的名字找人,而是按门牌号找人, 虽然同是找人,但还是有本质上的区别的.当且仅当门牌号对应的人与按入住人姓名找的人相同的时候, 找到的人才是同一个人.

用一段程序来理解,没有加入&的时候:

#include<stdio.h>
void test(int x){
  x=1024;
  printf("test函数内部 x=%d\n",x);
} 
int main(){
  int x=1;
  printf("调用test之前 x=%d\n",x);
  test(x);
  printf("调用test之后 x=%d\n",x);
}

运行后的结果为:

网络异常,图片无法展示
|

如果我们把函数test稍稍修改:

void test(int & x)

这时候调用test后的x就被修改了

网络异常,图片无法展示
|

例题

用线性表LA和LB分别表示两个有限集合A、B,现在需要求一个新的集合 A U B

分析:求取集合 A U B及是A、B的并集,即将集合B的元素插入到A的集合,但是不能插入含有A集合相同的元素。

实现:

  1. 通过Length(L)判断线性表的长度
  2. 通过GetElem(L,i)取线性表Lb中的i个元素赋给e
  3. 判断La中不存在e相同的数据元素,插入
void union(List &La, List Lb){
  La_len=Length(La);
  Lb_len=length(Lb);
  for(int i=1; i<=Lb_len; i++){
    GetEmel(Lb,i,e);
    if(!LocateElem(La,e,equal)){
      ListInsert(La,++La_len,e);
    }
  }
}
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
存储 C语言
数据结构之线性表的初始化及其操作
数据结构之线性表的初始化及其操作
51 0
|
4月前
|
存储 索引
数据结构练习之线性表定义与操作
有限序列:这意味着序列的长度是固定的,不会无限延伸,这与计算机资源的限制相符。在实际应用中,数据结构的大小通常是有限制的,因为内存和存储资源是有限的。
60 4
|
8月前
浅谈顺序表基本操作
浅谈顺序表基本操作
|
8月前
|
存储 算法
数据结构——单链表的基本操作
数据结构——单链表的基本操作
|
8月前
|
存储
数据结构— —单链表的基本操作
数据结构— —单链表的基本操作
|
8月前
|
存储 缓存 索引
数据结构——顺序表的概念和基本操作(超全超详细)
数据结构——顺序表的概念和基本操作(超全超详细)
|
存储
数据结构 2.1 线性表的定义和基本操作
数据结构 2.1 线性表的定义和基本操作
78 0
数据结构之单链表基本操作
数据结构之单链表基本操作
99 0
|
人工智能 C语言
线性表的定义和基本操作
线性表的定义和基本操作
166 0
静态顺序表及基本操作具体实现 1
静态顺序表及基本操作具体实现
61 0

热门文章

最新文章