dragonraje

导航

数据结构2.12 线性表及顺序存储

什么是线性表:

线性表是同一数据类型的元素构成的有序序列的线性结构,

元素个数为线性表的长度。

表的起始位置为表头,表的结束位置叫表尾。

对线性表的抽象数据类型描述:

类型名:线性表

数据对象集:线性表是由N个元素构成的有序序列。

序列:表示除了第一个元素和最后一个元素外,其他元素都有一个前继和后继。

有序:各数据元素之间有顺序

操作集:

初始化一个线性表 。List makeEmpty()

输入位置,返回元素。ElementType findkth(int k,List L)

查找某元素第一次出现的位置。 int find(elementType  k,List L)

插入元素:void insert(elementType K,List L)

删除元素:void delete(elementType k,List L)

返回线性表长度:int length(List L)

线性表存储方式:

1,顺序存储:数据元素根据数组的连续性中按顺序存放

 

 1:线性表格式:

typedef struct LNode *List;
struct Lnode{
ElementType DATA[MAXSIZE];//数组
int Last;//Last代表最后的位置
};
struct LNode L;
List PtrL;

2,线性表的初始化:

List makeList(){
    List Ptrl;
    Ptrl=(List)malloc(sizeof(struct Lnode));//malloc返回地址,所以前面强制转移的类型一定要是指针,sizeof表示Lnode的大小
    Ptrl->last=-1;//默认最后位置为-1
    return Ptrl;
}

3,查找线性表

int find(List Ptrl,double x){
    int i=0;
    while(i<=MAXSIZE&&Ptrl->data[i]!=x){//用i遍历线性表数组,当i>最大长度MAXSIZE或者查找成功则结束循环。
        i++;
    }
    if(i>MAXSIZE){
        return -1;//未查找到就返回-1
    }
    else {
        return Ptrl->data[i];//查找成功返回数据
    }

}

 

4,插入线性表

 

2,链式存储

posted on 2022-06-24 14:15  dragonraje  阅读(80)  评论(0编辑  收藏  举报