線性表

遞歸練習

階乘

字符串的逆序輸出

迴文數

求和

 

線性存儲結構:
鏈式存儲結構:
索引存儲:
哈希表:
時間效率的計算:O(1)<O(log2(n))<O(n)<O(nlog2(n))<o(n^2)<O(n^3)<O(2^n)<0(n!)
遞歸時間效率的計算:

線性表:
#define  MaxSize 10

typedef struct Data
{
 ElemType data[MaxSize];
 int length;
}SQList;

//初始化
void InitList(SQList *&L,int n)
{
 SqList l=(SqList *)malloc(sizeof(SQList));
 l->length=0;
}

void IsEmpty(SQList *L);

void GetElem(SQList *l,int i,int &e) //i是邏輯地址,要轉化爲物理地址
{
 if(i<1||i>l->length) return 0;
 e=l->data[i-1];
 return;
}

int GetElem(SQList *l,int key)
{
 int j=0;
 while(j<l->length&&key!=l->data[j])j++;
 if(j>=l->length) return 0;
 return j+1;
}
//該算法的時間複雜度不僅與l->length有關,也與查找key的位置有關,最壞時間複雜度:O(l->length-i+1)
int ListInsert(SQList *&l,int key,int i)
{
 if(i<1||i>l->length) return 0;
 i--;
 for(int j=l->length;j>i;j--)
  l->data[j]=l->data[j-1];
 l->data[i]=key;
}
//同插入
int ListDelete(SQList *&l,int key)
{
 int pos=GetElem(l,key);
 if(!pos) return 0;
 for(int i=pos+1;i<l->length;i++)
  l->data[j-1]=l->data[j];
 l->lenght--;
 return 1;
}

void DisPlayList(SQLisy *l);

int GetListLength(DQList *l);

void DestroyList(SQList *&l)
{
 free(l);
 return;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章