×

数据结构和算法之线性表

96
focusOn
2016.11.20 15:52* 字数 399

线性表

  • 排队的时候只需要记住前一个元素和后一个元素就可以了
  • 线性表,像排队一样,具有线一样性质的结构
  • 线性表(List):由零个或者多个数据元素组成的有限序列

需要注意的几个关键的地方:

  • 1 首先它是一个序列,也就是说元素之间是有个先来后到的
  • 2 若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素都有并且只有一个前后元素
  • 3元素是有穷的
  • 数学语言进行定义:a1,a2,ai-1,ai,ai+1...an
  • 所以线性表元素的个数n(n>=0),当长度n为0时候,则线性表为空

抽象数据类型

  • 指一组性质相同的值的集合以及定义在此集合上的一些操作的总称

  • 原子类型:不可以再分解的基本类型,例如整型、浮点型等

  • 结构类型:有若干个类型组合而成,是可以再分解的,例如整型数组是由若干整型数据组成的

  • 抽象:是指抽取事物具有的普遍性的本质。

  • 抽象数据类型(Abstract Data Type,ADT)是指一个数学模型的定义仅取决于它的一组逻辑特性,而在其计算机内如何表示和实现无关。

模拟一个求两个集合的并集伪代码(C):

void unionL(List *La,list Lb)
{
    int La_len,Lb_len,i;
    ElemType,e;
    La_len = ListLength(*La);
    Lb_len = ListLength(Lb);

    for(i=1;i<=La_len;i++){
         //从某个集合中 
        GetElem(Lb,i,&e)
        //查找当前元素是否不在La集合中
        if(!LocateElem(*La,e)){
            //在线性表中的i位置插入某个元素
            ListInsert(La,++La_len,e);
        }
    }

}
Web note ad 1