数据结构(C语言版)线性表学习笔记

顺序表:指线性表的顺序存储结构(用一组地址连续的存储单元按序存放元素如数组)。

特点:逻辑结构相邻的元素在存储结构中仍然是相邻的,因此可以实现随机存取。

定义如下:

#define MAX 10 //顺序表容量    

typedef  int  DataType;//顺序表的数据类型                                                                                                                  typedef  struct

{

     DataType data[MAX];

    int  Length;

}List;

初始化顺序表:InitList(List  *L )

                            {

                               L->Length=0;

                            }

建立顺序表:Creat(List *L,int n,DataType a[])

                     {

                        if(n>MAX)

                     {

                          printf(“已超过表容量\n”);

                           return 0;

                       }

                      for(i=0;i

                     {

                       L->data[i]=a[i];

                        L->length=n;

                     }

                    }

求表的长度:int L_ength(List *L)

                       {

                         return  L->Length;

                       }

查找:(1)按位查找                 

int DataTypeGet(List *L,int i)

{

           if(i>=1&&i<=L->length)

              returnL->data[i-1];

             else

            return 0;

}

(2)按值查找

int Locate(List *L,DataType x)

{

        int i;

       for(i=0;ilength;i++)

       {

              if(L->data[i]==x)

              return L->data[i] ;       

       }

           return0;

}

插入:

int ListInsert(List *L,int i,DataType x)//添加数的位置i和添加的数x

{

       intj;

       if(i<1||i>L->length)

              return0;

       for(j=L->length;j>=i;j--)

              L->data[j]=L->data[j-1];

       L->data[i]=x;

       L->length++;

       return1;

}

删除:

int ListDelete(List*L,int q)//要删除的位置

{

       int j;

       if(q<1||q>L->length)

              return0;

       for(j=q;jlength;j++)

              L->data[j-1]=L->data[j];

       L->length--;

       return1;

}

遍历:

void PrintList(List *L)

{

       int i;

       for(i=1;i<=L->length;i++)

              printf("%d",L->data[i-1]);

       printf("\n");

}

判断为空:

int Empty(List *L)

{

  if(L->Length==0) return 1;

else

return 0;

}




























你可能感兴趣的:(数据结构)