• 线性表的基本操作


    参考教材:数据结构C语言版(严蔚敏,吴伟民编著)

    InitList(&L)        (Initialization List:初始化线性表)

            操作结果:构造一个空的线性表L。(分配内存空间)

    DestroyList(&L)        (删除)

            初始条件:线性表L已存在。

            操作结果:销毁线性表L。(从内存中删除线性表,释放空间)

    ClearList(&L)        (重置)

            初始条件:线性表L已存在。

            操作结果:将L重置为空表。(内存还有,但是没有元素)

    ListEmpty(L)        (判断线性表是否为空表,空表n=0)

            初始条件:线性表L已存在。

            操作结果:若L为空表,则返回TRUE,否则返回FALSE。

    ListLength(L)        (求线性表的长度:线性表当中元素的个数)

            初始条件:线性表L已存在。

            操作结果:返回L中数据元素个数。

    GetElem(L, i, &e)        (获取线性表当中元素)

            初始条件:线性表L已存在,1 ≤ i ≤ ListLength(L)。

            操作结果:用e返回L中第i个数据元素的值。

    LocateElem(L,e,compare())        (查找、定位)

            初始条件:线性表L已存在,compare()是数据元素判定函数。        

            操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值为0。

    PriorElem(L,cur_e,&pre_e)        (求一个元素的前趋)

            初始条件:线性表L已存在。

            操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。

    NextElem(L,cur_e,&next_e)        (获取一个元素的后继)

            初始条件:线性表L已存在。

             操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。

    ListInsert(&L,i,e)        (插入元素)

            初始条件:线性表L已存在,1 ≤ i ≤ ListLength(L)+ 1。

            操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。

    例:插入元素e之前(长度为n):(a_{1},a_{2},...,a_{i-1},a_{i},...,a_{n})

    插入元素e之后(长度为n+1):(a_{1},a_{2},...,a_{i-1},e,a_{i},...,a_{n})

    此处a_{i}是e的后继

    ListDelete(&L,i,&e)        (删除元素)

            初始条件:线性表L已存在且非空,1 ≤ i ≤ ListLength(L)。

            操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1。

    例:删除前(长度为n):(a_{1},a_{2},...,a_{i-1},a_{i},a_{i+1},...,a_{n})

    删除后(长度为n-1):(a_{1},a_{2},...,a_{i-1},a_{i+1},...,a_{n})

    ListTraverse(L,visit())        (遍历线性表)

            初始条件:线性表L已存在。

            操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败

    PrintList(L):输出:按照前后顺序输出线性表L的所有元素值。

  • 相关阅读:
    程序员最爱用的在线代码编辑器合集,哪款是你的最爱?
    Vue3-无限滚动的懒加载-本地数据操作版
    中小微企业中的营业额与收入评估的风险模型预测
    OA系统、ERP系统、MIS系统的区别
    如何快速集成讯飞星火 2.0 API ?
    centos7安装mysql8.0
    Vue3 - Suspense 组件介绍及使用方法
    WebGL(ThreeJS)加载乐高Ldraw模型案例
    React初体验-Hello React的组件化方式-React入门小案例
    知乎高赞:听说Rust要取代C++?
  • 原文地址:https://blog.csdn.net/long_0901/article/details/139710428