顺序表的存储结构如下图所示 存储地址1 cation(k1) location(k)+(1-1) en 内存状况 k1|k2 k en en en en 结点序号 存储结构要体现数据的逻辑结构,顺序表的存储 结构中,内存中物理地址相邻的结点一定具有顺序表 中的逻辑关系
顺序表的存储结构如下图所示: 存储结构要体现数据的逻辑结构,顺序表的存储 结构中,内存中物理地址相邻的结点一定具有顺序表 中的逻辑关系
顺序表类型的描述如下: ADT sequence list( 数据集合K:K={k1,k2…,kn}n≥0,K中的元素是 datatype类型 数据关系R:R={r},r={<kki=1,2,…,n-1} 操作集合 (1) void init sequence list(sequence list*st)顺序表的初始化--置空表 (2) void insert sequence list( sequence list* ' slt, datatype x)后部插入值为x结点 (3) void print sequence list( sequence list slt))打印顺序表的各结点值 4) int is empty sequence list( (sequence list sIt)判断顺序表是否为空 (5) )int find num sequence list( sequence list sIt, datatype x)查找值为x结点位置 (6) int get data pos( sequence list slt, int i)取得顺序表中第个结点的值 (7)void insert pos sequence list(sequence list*slt, int position, datatype x) 8)void delete pos sequence list(sequence list*sIt, int position) 3 ADT Sequence list ;
顺序表类型的描述如下: ADT sequence_list{ 数据集合K:K={k1 , k2 ,…, kn },n≥0,K中的元素是datatype类型 数据关系R:R={r},r={ <ki , ki+1>| i=1,2,…,n-1} 操作集合: (1) void init_sequence_list(sequence_list *slt) 顺序表的初始化------置空表 (2) void insert_sequence_list(sequence_list *slt,datatype x) 后部插入值为x结点 (3) void print_sequence_list(sequence_listslt) 打印顺序表的各结点值 (4) int is_empty_sequence_list(sequence_listslt) 判断顺序表是否为空 (5) int find_num_sequence_list(sequence_listslt,datatype x) 查找值为x结点位置 (6) int get_data_pos(sequence_listslt,int i) 取得顺序表中第i个结点的值 (7) void insert_pos_sequence_list(sequence_list *slt,int position,datatype x) (8) void delete_pos_sequence_list(sequence_list *slt,int position) } ADT sequence_list;
222顺序表的实现 用C语言中的数组存储顺序表。C语言中数组的下标 是从0开始的,即数组中下标为0的元素对应的是顺序 表中的第1个结点,数组中下标为元素对应的是顺序 表中的第计1个结点。为了方便,将顺序表中各结点的 序号改为和对应数组元素的下标序号一致,即将顺序 表中各结点的序号从0开始编号。这样,一个长度为n 的顺序表可以表示为 (ko,k1,k2,…,kn1
2.2.2顺序表的实现 用C语言中的数组存储顺序表。C语言中数组的下标 是从0开始的,即数组中下标为0的元素对应的是顺序 表中的第1个结点,数组中下标为i的元素对应的是顺序 表中的第i+1个结点。为了方便,将顺序表中各结点的 序号改为和对应数组元素的下标序号一致,即将顺序 表中各结点的序号从0开始编号。这样,一个长度为n 的顺序表可以表示为 {k0 , k1 , k2 , …, kn-1 }
顺序表的存储结构的C语言描述如下: 水*水水水水水水**半水水**水水水水水水水水水水水水*水水 /顺序表的头文件,文件名 sequlist. h*/ /******菜****************/ define MaXsiZE 100 typedef int datatype, typedef struct datatype a[MAXSIZE] int size Sequence list
顺序表的存储结构的C语言描述如下: /********************************/ /*顺序表的头文件,文件名sequlist.h*/ /********************************/ #define MAXSIZE 100 typedef int datatype; typedef struct{ datatype a[MAXSIZE]; int size; }sequence_list;
顺序表的几个基本操作的具体实现 /*********来***************来********* /*顺序表的初始化一置空表 /*文件名 seqlinit. c,函数名 init sequence list(* /**********来***********来****来*********/ void init sequence list(sequence list *sIt) sIt->size=0 算法2.1顺序表的初始化-置空表
顺序表的几个基本操作的具体实现 : /********************************************/ /* 顺序表的初始化---置空表 */ /* 文件名seqlinit.c, 函数名init_sequence_list() */ /*******************************************/ void init_sequence_list(sequence_list *slt) { slt->size=0; } 算法2.1顺序表的初始化---置空表