顺序链表

> #include "StdAfx.h"
> #include 
> #include 
> #include 
> 
> using namespace std; //InitList() 
> 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<<"["<"]"<       }   
>   }
>   p[position]=value;
>   ++length;       
>   return true; 
> }; 
> Elem SqList::GetElem(int position) 
> {     if(position 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<
> 
>   cout<<"总长度为:"<   for(int i=0;i   { cout<   system("pause"); 
>   return 1; 
> }

你可能感兴趣的:(算法,链表)