52.1.5线性表抽象类 virtual long CountElem(TElem &elem)=0 virtual long Locate TElem &elem, long Sn=1)=0 virtual long Locate ( telem &elem, long foundElem)=0 virtual long Locate First(TElem &elem)=0 virtual long LocateNext(tElem &elem)=0 virtual TElem * Insert(TElem &elem, long Sn=1)=0 virtual TElem*Delete(long Sn=1)=0 virtual long Delete (tindexselector &sel, TElem elemDeleted=NULL)=0 virtual long Delete Bylndex(long*idxTobeDel long numldx, TElem *elemDeleted=NULL=0
21 §2.1.5 线性表抽象类 virtual long CountElem(TElem &elem)=0; virtual long Locate (TElem &elem, long sn=1) = 0; virtual long Locate (TElem &elem, long *foundElem) = 0; virtual long LocateFirst(TElem &elem) = 0; virtual long LocateNext(TElem &elem) = 0; virtual TElem *Insert (TElem &elem, long sn=1) = 0; virtual TElem *Delete (long sn=1)=0; virtual long Delete (TIndexSelector &sel, TElem *elemDeleted = NULL) = 0; virtual long DeleteByIndex (long *idxTobeDel, long numIdx, TElem *elemDeleted=NULL)=0; };
§22线性表的顺序存贮结构 §221基本存储方法 线性表的顺序存贮 将表中各元素依它们的逻辑次序存贮在一片连续 的存贮区域中,使任意两相邻元素之间的存贮单元个 数相等 设线性表为L=(aa2,a,每个元素占2个存贮单元, al 图21线性表的顺序存储 有下列关系成立Loc(a;)=Loc(a1)+(i-1)*c 22
22 §2.2 线性表的顺序存贮结构 • 线性表的顺序存贮 将表中各元素依它们的逻辑次序存贮在一片连续 的存贮区域中,使任意两相邻元素之间的存贮单元个 数相等 • 设线性表为L=(a1 ,a2 ,…,an ),每个元素占2个存贮单元, §2.2.1 基本存储方法 a1 a2 a3 … … 图2.1 线性表的顺序存储 有下列关系成立 Loc ( ai ) =Loc(a1 ) + ( i -1) * c
§222面向对象描述 (一)对象结构 ·线性表的顺序存贮结构的存储区域,可用高级 语言中的数组模拟 从面向对象观点看,顺序存储的线性表,是一 个对象,其主要数据成员是一维数组 维数组采用动态空间表示 23
23 §2.2.2 面向对象描述 • (一) 对象结构 • 线性表的顺序存贮结构的存储区域,可用高级 语言中的数组模拟 • 从面向对象观点看,顺序存储的线性表,是一 个对象,其主要数据成员是一维数组 • 一维数组采用动态空间表示
52.2.2面向对象描述 ·(一)对象结构 template <class TElem> class TlinearListSqu: public Tlinearlistotele protected TElem *room; long size, long last visited TElem buffElem long Resizeroom (long newSize) long CopyRoom(TElem *objRoom, longl, TElem*srcRoom, long n2) 24
24 §2.2.2 面向对象描述 • (一) 对象结构 template <class TElem> class TLinearListSqu : public TLinearList0<TElem> { protected: TElem *room; long size; long lastVisited; TElem buffElem; long ResizeRoom(long newSize); long CopyRoom(TElem *objRoom, long n1, TElem *srcRoom, long n2);
522.2面向对象描述 ·(一)对象结构 public TLinearListsqu(void) TLinearlistSqu(long mIze); TLinearlistsqu(void) virtual TElem & Get (long idx) virtual TElem*GetAddress (long idx); virtual TElem*Set (long idx, TElem &elem) virtual TElem* Prior(long idx) virtual TElem *Next (long idx) virtual long Count Elem(tElem &elem)
25 §2.2.2 面向对象描述 • (一) 对象结构 public: TLinearListSqu (void); TLinearListSqu (long mSize); ~TLinearListSqu (void); virtual TElem &Get (long idx); virtual TElem *GetAddress(long idx); virtual TElem *Set (long idx, TElem &elem); virtual TElem *Prior (long idx); virtual TElem *Next (long idx); virtual long CountElem(TElem &elem);