线性表基本操作

今天开始重新复习数据库,从基础的开始

#include<stdio.h>

#define MAXSIZE 20

typedef BOOL status

typedef int ElemType

typedef  struct

{

    ElemType data[MAXSIZE];

    int length;
}SqList//定义线性表的数据结构

status InitList(SqList *L)

{

   L->length=0;

   return TRUE;

}//初始化操作

status ListEmpty(SqList *L)

{

       if(L->length==0)

          return TRUE;

       else

          return FALSE;

}//判断是否为空

status InsertList(SqList *L,ElemType e,int k)

{

        if(L->length==MAXSIZE)

      {    printf("The length of list has be the max ");

          return  FALSE;

       }

       if(k<0||k>L->length+1)

       {

              return FALSE;

   }

       else

       {

             for(int i=L->length-1;i>=k-1;i--)

               {

                     L->data[i+1]=L->data[i];

                }

               L->data[k]=e;

                L->length++;

                return TURE;

       }


}//插入元素

int main()

{

        SqList *La;

        status  t;

        t=InitList(La);

        for (int i=0;i<6;i++)

       {

               t=InsetList(La,i,i+1) ;

       }

       for(int i=0;i<La->length;i++)
      {
               printf("%d\n",La->data[i]);
      }
                    printf("%d",t);

}

这样写完后内存报错,La指针是一个空指针,没有指向任何实体。定义指针时必须指向一个实体即一个实际的内存。定义一个普通对象时,系统会为它分配内存空间

因此这样改SqList Lb;

              SqList *La=&Lb;

           或 SqList La;下面参数改为&La

11.27

posted @ 2012-11-28 11:02  fivebird  阅读(136)  评论(0)    收藏  举报