线性表

递归练习

阶乘

字符串的逆序输出

回文数

求和

 

线性存储结构:
链式存储结构:
索引存储:
哈希表:
时间效率的计算: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;
}

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