数据结构、算法及线性表总结

℡╲_俬逩灬. 提交于 2020-03-28 19:23:14
···
//初始化表
 void InitList(SqList *&L)
    {
        L=new SqList;//为线性表分配空间
        L->length=0;
    }
//销毁线性表
void DestoryList(SqList* &L)
{
    delete L;//释放L指向的内存空间
}
//获取元素
bool GetElem(SqList *L,int i,ElemType &e)
{
     if(i<1||i>L->length)
     return false;
     e=L->data[i-1];
     return true;
}
//插入元素
bool ListInsert(SqList *&L,int i,ElemType e)
{
      if(i<1||i>L->length)
      return false;
      i--;
      for(int j=L->length;j>i;j--)
      L->data[j] = L->data[j-1];
      L->data[i]=e; 
      L->length++;
      return true;
}
//删除元素
bool LiseDelete(SqList *&L,int i,ElemType &e)
{
      if(i<1||i>L->length)
         return false;
      i--;
      e=L->datd[i];
      for(int j=i;j<L->length-1;j++)
           L->data[j] = L->data[j+1];
      L->length--;
      return true;
}
//链表创建头节点
void InitList(LinkList *&L)
{
     L=new LNode;
     L->next=NULL;
}
//判断是否为空表
bool ListEmpty(LinkList *L)
{      
return(L->next==NULL);
}
//求线性表长度
{
     int n=0;
     LinkList *p=L;
     while(p->next!=NULL)
     {
         n++;
         p=p->next;
     }
     return n;
}
//头插法简单链表
void CreatListF(LinkList *&L,ElemType a[],int n)
{
     LinkList *s;
     int i;
     L=new LNode;
     L->next=NULL;
     for(i=0;i<n;i++){
     s=new LNode;
     s->data=a[i];
     s->next=L->next;
     L->next=s;
   }
}
//尾插法建链表
void CreatListR(LinkList *&L,ElemType a[],int n)
{
     LinkList *s,*r;
     int i;
     L=new LNode;
     r=L;
     for(i=0;i<n;i++)
{
     s=new LNode;
     s->data=a[i];
     r->next=s;
     r=s;
   }
   r->next=NULL;
}
```

#3.时间复杂度的求解

##1.定义:一个程序的空间复杂度是指运行完一个程序所需内存的大小。

##2.大O表示法:用O(n)来体现算法时间复杂度的记法。

##3.推导大O阶有一下三种规则:

  1. 用常数1取代运行时间中的所有加法常数
  2. 只保留最高阶项
  3. 去除最高阶的常数

##4.如果算法的执行时间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)。

##5.如果算法的执行时间随着问题规模n的增长而增长,则时间复杂度可通过计算得到为O(n)、O(log n)、O(n2)……

##6.常见时间复杂度的比较

O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!)

 

#2.重要概念

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!