顺序表存储结构

来源:互联网 发布:销售管理论文数据 编辑:程序博客网 时间:2024/04/28 02:49
线性表的顺序存储结构是一种随机存取的存储结构。比如存储一个多项式的系数和指数的线性表我们可以这么表示。
#define MAXSIZE 100//多项式可能达到的最大长度typedef struct//多项式的定义{    float coef;//系数    int expn;//指数}Polynomial;typedef struct{    Polynomial *elem;//存储空间的基地址    int length;//多项式当中项的个数}SqList;//多项式的顺序存储结构类型为SqListint InitList(Sqlist &L)//构建一个空的顺序表{    L.elem=new ElemType[MAXSIZE];//为顺序表分配空间    if(!L.elem)        exit(0);//存储空间分配失败退出    L.length=0;//空的表长度为0    return 1;}int GetElem(SqList L,Elemtype e)//取值操作{    if(i<1||i>length)        return 0;    e=L.elem[i-1];    return 1;}int LocateElem(Sqlist L,ElemType e)//查找操作{    for(i=0;i<L.length;i++)    {        if(L.elem[i]==e)        return i+1;    }    return 0;}

顺序表和链式表的应用

1.当线性表的长度变化不大的时候,如果容易确定它的大小,为了节约空间我们一般采用顺序表作为存储结构。

2.若线性表的主要操作是和元素位置紧密相关的这类取值操作,很少做插入或删除时,一般采用顺序表作为存储结构。

3.对于频繁进行插入或删除操作的线性表一般采用链表作为存储结构,因为线性表需要移动很多元素时间复杂度太高。

4.链表的取值操作效率是非常低的

0 0
原创粉丝点击