《大话数据结构》学习笔记 线性表

  线性表可以定义为“零个或多个数据元素的有限排列”。

线性表的抽象数据类型可以如下定义:

ADT 线性表(List)



Data



   线性表的数据对象集合为(a1,a2,...,an),每个元素的类型均为DataType。其中除第一个元素a1外,



每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。



数据元素直接是一对一的关系。*/



Operation



InitList(*L);//初始化操作,建立一个空的线性表



ListEmpty(L);//若线性表为空,返回true,否则返回false



ClearList(*L);//清空线性表



GetElem(L,i,*e);//查找线性表中的第i个位置的元素值,并赋值给e



LocateElem(L,e);//查找线性表L中与给定值e相等的元素,如果查找成功,则返回第一个相同的元素在L



//中的下标;否则,返回0表示失败



ListInsert(*L,i,e);//在线性表L的第i个位置插入元素e



ListDelete(*L,i,*e);//删除线性表L中第i个位置元素,并用e返回其值



ListLength();//返回线性表L的长度



end ADT

 顺序存储结构和链式存储结构

线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。

链式存储结构为了解决顺序存储结构插入和移动时需要移动大量元素,消耗时间的缺点,在链式存储结构中,结点由存放数据元素的数据域和存放后继结点的指针域组成

如,线性表的单链表存储结构:

typedef struct Node

{

    ElemType data;

    struct Node  *next;

} Node;

typedef struct Node *LinkList;//定义LinkList

 

你可能感兴趣的:(数据结构)