第二章:线性表(1)

1、一个线性表时n个数据元素的有限序列。

第二章线性表-顺序存储 

2、一个数据元素可以由若干个数据项组成,这种情况常把数据元素成为记录:

每个学生为一个记录,它由学号、姓名、性别、年龄、班级组成:

第二章线性表-顺序存储

(注意:同一线性表中的元素必须具有相同的属性。)


3、抽象数据类型线性表如下:

     ADT List{

            数据对象:D={ ai | ai 属于 Elemset , i=1,2,3,... ,n, n>=0 }

           数据关系 : R1={ < ai-1 , ai > | ai-1 , ai 属于D,i = 2,... , n  }

           基本操作:

                 InitList(&L)

                       操作结果:构造一个空的线性表L

                DestroyList(&L)

                       初始条件:线性表L已经存在

                       操作结果:销毁线性表L

               ClearList(&L)

                        初始条件:线性表已经存在

                        操作结果:将L重置为空表

               ListEmpty(L)

                        初始条件:线性表L已经存在

                        操作结果:若L为空表,则返回TRUE,否则返回FLASE

               ListLength(L)

                        初始条件:线性表L已经存在

                        操作结果:返回L中数据元素的个数

               GetElem(L , i , &e)

                        初始条件:线性表L已存在, 1 <= i <=ListLength(L)

                        操作结果:用e返回L中第 i 个数据的值

                LocateElem(L , e , compare())

                        初始条件:线性表L已经存在,compare()是数据元素判定函数

                        操作结果:返回L中第1 个与e满足关系 compare( ) 的数据元素的位序,若这样的数据元素 不存在,则返回                          0  

               PriorElem( L , cur_e ,&pre_e )

                        初始条件:线性表L已经存在

                        操作结果:若cur_e是 L  的数据元素,且不是第一个,则用 pre_e 返回它的前驱,反则操作失败,pre_e                          无定义 

               NextElem(  L , cur_e ,&next_e )

                        初始条件:线性表L已经存在

                        操作结果:若cur_e是 L  的数据元素,且不是最后一个,则用  next_e 返回它的后继,反则操作失败,next_e                          无定义 

               ListInsert(&L,i,e)

                        初始条件:线性表L已经存在,1 <= i <=ListLength( L ) +1 

                        操作结果:在L中第 i 个位置之前插入新的数据元素 e, L长度加1

               ListDelete(&L ,i , &e)

                        初始条件:线性表L已经存在且非为空, 1<= i <=ListLength( L )

                        操作结果:删除L 的第 i 个数据元素,并用e返回其值,L长度减 1

               ListTraverse(L , visit()) 

                        初始条件:线性表L已经存在

                        操作结果: 依次对L的每个数据元素调用函数 visit()。一旦visit()失败,操作失

     } ADT List

上述为各个函数的操作:

--------------------------------------------------------------------------------------------------------------------------------




相关文章: