顺序表

顺序表的初始化:静态分配


/*指定 int 的别名 */
typedef int ElemType;
/*数组的最大容量*/
#define MaxSize 50
typedef  struct Sqlist{
    ElemType data[MaxSize];

    int length;
} Sqlist;

顺序表的初始化:动态分配

/*指定 int 的别名 */
typedef int ElemType;
/*数组的最大容量*/
#define InitSize 100
int main()
{
    typedef  struct Sqlist{
        /*定义存放动态数组的指针*/
        ElemType *data;

        int length,MaxSize;
    } Sqlist;

    Sqlist  l;
    /*ElemType * :强制类型转换*/
    /* malloc:申请内存*/
    /* sizeof : 获取数据类型的字节数大小*/
    l.data=(ElemType *) malloc(InitSize*sizeof (ElemType));
    return 0;
}


顺序表的插入:位序i

从后往前面插:

 /**
  *顺序表的插入操作
  * @param i 位序
  * @param e
  * @return
  */
bool ListInsert(Sqlist  &L, int i , int  e){
    if(i<1 || i>L.length){
        return false;
    }
    if(L.length==L.MaxSize){
        return false;
    }
    for(int j=L.length;j>=i;j--){
        L.data[j-1]=L.data[j];
    };
    L.data[i-1]=e;
    L.length++;
    return true;

}

顺序表的删除:位序i

找到定位;从前往后

 /**
  *顺序表的删除操作
  * @param i 位序
  * @return
  */
bool ListDelete(Sqlist  &L, int i ){
    if(i<1 || i>L.length){
        return false;
    }
    for(int j=i;j<L.length;j--){
        L.data[j-1]=L.data[j];
    };
    L.length--;
    return true;

}
posted @ 2024-06-29 20:01  成强  阅读(12)  评论(0编辑  收藏  举报