线性表

线性表的基本操作

注:数据结构的三要素——逻辑结构、数据的运算、存储结构(物理结构)

线性表定义:

​ 具有相同数据类型的n(n>=0)个数据元素有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为
L = ( a 1 , a 2 , . . . , a i , a j , . . . , a n ) L=(a1,a2,...,ai,aj,...,an) L=(a1,a2,...,ai,aj,...,an)
相同:每个元素所占空间一样大

有限序列:有次序

几个概念:

  • ai是线性表中的“第i个”元素线性表中的位序
  • a1是表头元素;an是表尾元素。
  • 除第一个元素外,每个元素有且仅有一个直接前驱:除最后一个元素外,每个元素有且仅有一个直接后继

线性表的基本操作:

1)从无到有,从有到无

InitList(&L):初始化表。构造一个空的线性表L,分配内存空间。

DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占用的内存空间。

2)增、删

ListInsert(&L,i,e):插入操作。在表L中的第i个位置插入指定元素e。

ListDelete(&L,i,&e):删除操作。删除表L中第i个位置的元素,用用e返回删除元素的值。

3)改、查(“改”之前也要“查”)

LocateElem(L,e):按值查找。在表L中查找具有给定关键字的元素。

GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。

其他常用操作:

Length(L):求表长

printList(L):输出操作

Empty(L):判断操作

Tips

  1. 对数据的操作(记忆思路) ——创销、增删查改

  2. C语言函数的定义 —— <返回值类型> 函数名 (<参数1类型> 参数1,<参数2类型> 参数2,……)

  3. 实际开发中,可根据实际需求定义其他的基本操作

  4. 函数名和参数形式、命名都可以改变(Reference:严蔚敏版《数据结构》)

    key:命名要有可读性

  5. 什么时候要传入引用“$” ——对参数的修改结果需要“带会来

    例:

    #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);
    }
    
    

    运行结果:没“带回来”
    在这里插入图片描述

    main函数里面的x和test里面的x不是同一个,可以说test中的x是新开辟的一个和main里面的x除地址不同的复制品

    #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);
    }
    
    

    运行结果:“带回来”了
    在这里插入图片描述

总结

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值