数据结构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) 编辑 收藏 举报