美文网首页
2019-02-15

2019-02-15

作者: 此处应该有个昵称 | 来源:发表于2019-02-15 17:16 被阅读0次

    第二章

    <1>线性表的定义:

        1.n个类型相同的数据元素构成的有限序列记做a1,a2,....,an;

        2.其中1,2,......,n是元素的序号,表示在表中的位置;

        3.n为元素的总个数;

        4.a1表示线性起点,an表示线性终点;

        5.ai-1是ai的直接前驱,ai+1是ai的直接后继;

        6.当n等于0,成为空表。

    线性表的特点:

        1.。同一性——线性表由同类数据元素组成。

        2.有限性——由有限个数据元素组成。

        3.有序性——线性表中的数据有先后顺序。

    <2>线性表的存储方式:

        1.顺序表:用顺序方式存储的线性表。

        2.链表:是用链式方式存储的线性表。

    顺序存储元素地址计算:

        LOC(ai)=LOC(a1)+(i-1)*d

        d —— 一个元素占用的存储单元个数。

        LOC(ai) —— 线性表第i个元素的起始地址。

        LOC(ai) —— 起始地址,基地址。

    顺序存储特点:

        1.逻辑上的相邻。

        2.随机存取。

    顺序表的结构体数据类型:

        typedef struct{

           Elem Type  *elem(一维数组);//存储的是数组的第一个元           素的地址。

            int类型- length;//顺序表的当前长度。

        命名:}SqList;//定义的结构体数据类型SqList,用于表示         顺序表

    *Elem Type:抽象表示 可以是int,double,结构体类型(变量)

    SqList L;

    L.lengh

    表达为

        L.elem[1],L.elem[2],......,L.elem[L.length]

    单变量空间申请:int*p=new int;

    单变量空间释放:delete p;

    数组空间的申请:

        一维:int*p=new int[5];

        二维:int(*p)[3]=new int[2][3];

    释放:delete[ ]p;

    赋值:1 *p=...;            2.p[0]=

                    p++;                 p[1]=

                   *p=...;                 .....

    void Initist(SqList  &L)   //L里面是垃圾数据需要引用

    {

    顺序表的初始化操作:

        L.elem=new Elem Type(MAXSIZE);

        if (L.elem==NULL)

            exita (OVERFLOW);

        else

            L.length=0;

    }

                

    相关文章

      网友评论

          本文标题:2019-02-15

          本文链接:https://www.haomeiwen.com/subject/edfmeqtx.html