Arrays occupy a contiguous space in memory, so it have a natural linear structure. Because a linear list have to insert and delete elements from time to time, so the length of the list is changeable. Due to the immutability of the capacity of array, there have to be some empty space for new elements. We use dynamic array to store the linear list, which includes two variables: a pointer to the beginning of an array( elemType * StartPosition), and the capacity of the dynamic array( int maxsize). When the length of the array isn’t enough, we will create a new array with twice the capacity.
the definition of sequence list:
#ifndef LINEAR_LIST_SEQUENCELIST_H
#define LINEAR_LIST_SEQUENCELIST_H
#include "AbstractBaseClassOfLinearList.h"
template<class elemType>
class seqList: public list<elemType>{
private:
elemType *StartPosition;
int CurrentLength;
int MaxSize;
void DoubleSpace();
public:
seqList(int InitialValue=10);
~seqList();
void Clear();
int GetLength() const;
void Insert(int i, const elemType&x);
void Delete(int i);
int Search(const elemType&x)const ;
elemType Visit(int i)const ;
void Traverse()const ;
};
#endif //LINEAR_LIST_SEQUENCELIST_H
(To be continued)