> #include "StdAfx.h"
> #include <stdio.h>
> #include <string>
> #include <iostream>
>
> using namespace std;
> typedef string Elem;
> #define Maxlenght 10
>class SqList{
> public:
> bool initSqlist();
> bool insertSqlist(int position, Elem p);
> Elem GetElem(int position);
> int GetLength();
> int GetmaxLength();
> int GetLocalElem(const Elem value);
> Elem GetPreviousElem(Elem value);
> Elem GetNextElem(Elem value);
> bool EnLargeList();
> bool ClearList();
> private:
unsigned int length;
> unsigned int maxLength;
> };
> bool SqList::initSqlist()
> {
> p=new Elem[Maxlenght];
> length=0;
> maxLength=Maxlenght;
> if(p!=nullptr) return true; else return false;
> };
> bool SqList::insertSqlist(int position,Elem value)
> {
> if(length+1>maxLength)
> { EnLargeList(); }
> if (position<0 )return false;
> else
> {
> for(int j=length-1;j>=position;--j)
> {
> p[j+1]=p[j];
> cout<<"["<<j<<"]"<<p[j]<<endl;
> }
> }
> p[position]=value;
> ++length;
> return true;
> };
> Elem SqList::GetElem(int position)
> { if(position <maxLength) return p[position];
> };
> int SqList::GetLength() { return length; };
> int SqList::GetmaxLength()
> {return maxLength; }
> int SqList::GetLocalElem(const Elem value)
> {
> for(int i=0;i<=length-1;i++)
> { if (p[i]==value)return i;
> else
> return -1;
> }
> }
> Elem SqList::GetPreviousElem(Elem value)
> { int i=GetLocalElem(value);
> if (i!=0 &&i !=-1) { return p[i-1]; }
> }
> Elem SqList::GetNextElem(Elem value)
> { int i=GetLocalElem(value);
> if(i!=-1 &&i!=length-1)
> { return p[i+1]; }
> }
> bool SqList::EnLargeList()
> {
> Elem *newp=new Elem[maxLength+newSize];
> for(int i=0;i<=length-1;++i){ newp[i]=p[i]; }
> if(!DestoryList())
> { return false; } else{
> p=newp;
> maxLength+=newSize;
> return true;
> }
> return false;
>}
> bool SqList::DestoryList()
> {
> delete []p;
> p=NULL;
}
int main() {
>
> SqList sql_a,sql_b,sql_c;
> sql_a.initSqlist();
> sql_a.insertSqlist(0,"10");
> sql_a.insertSqlist(1,"40");
> sql_a.insertSqlist(2,"20");
> sql_a.insertSqlist(2,"20");
> sql_a.insertSqlist(3,"30");
> sql_a.insertSqlist(1,"50");
> sql_a.insertSqlist(1,"60");
> sql_a.insertSqlist(1,"70");
> sql_a.insertSqlist(1,"80");
> sql_a.insertSqlist(1,"90");
> sql_a.insertSqlist(1,"100");
> sql_a.insertSqlist(1,"102");
>
>
>
> cout<<"总长度为:"<<sql_a.GetLength()<<endl;
> for(int i=0;i<sql_a.GetLength();i++)
> { cout<<sql_a.GetElem(i)<<endl; }
> system("pause");
> return 1;
> }