线性表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表相关的知识,希望对你有一定的参考价值。
递归练习
阶乘
字符串的逆序输出
回文数
求和
线性存储结构:
链式存储结构:
索引存储:
哈希表:
时间效率的计算: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;
}
以上是关于线性表的主要内容,如果未能解决你的问题,请参考以下文章