順序表


#include <stdio.h>
#define  listsize 100  //線性表的最大長度

typedef struct
{
    int date[listsize];  //數組存儲元素
    int length;          //順序表中元素的個數
}cList;

//  線性表初始化

void Initlist(cList *l)
{
    if(l == NULL)
    {
        return;
    }
    l->length = 0;
}

// 線性表刪除
void DelList(cList *L , int i)
{
    if(L->length <1||i<1||i>L->length)
    {
        printf("空表\n或刪除錯誤");
        return ;
    }
    int k =0;
    for(k=i;k < L->length;k++)
    {
        L->date[k-1] = L->date[k];     **//   刪除第幾個元素值,對應的數組下標要減1**

    }
    L->length--;
}


// 線性表插入

void  Inlist(cList *l , int i ,int e)
{
    int k = 0;
    if(i<1||i>l->length+1)
    {
        printf("插入不成功\n");
        return ;
    }
    else if(l->length > listsize)
    {
        printf("順序表滿,不能插入\n");
        return ;
    }
    else
    {
        for(k = l->length;k>i-1;k--)
        {
            l->date[k] = l->date[k-1];
        }
        l->date[i-1] = e;    //插入的元素值
        l->length++; 
}
    
//顯示元素
}void ListDisplay(cList *L)
{
    int i;
    for (i = 0; i < L->length; i++)
    {
        printf("%d\t", L->date[i]);
    }
    printf("\n");
}

int main()
{
    cList L;
    Initlist(&L);
    int a;
    int i,k;
    printf("請輸入線性表La的長度:");
    scanf("%d", &a);
    L.length = a;
    //輸入元素
    printf("輸入%d個元素\n",a);
    for(i=0;i<L.length;i++)
    {
        scanf("%d",&L.date[i]);
    }


    printf("插入元素位置\n");
    scanf("%d",&i);
    printf("插入元素值\n");
    scanf("%d",&k);
    Inlist(&L,i,k);
    ListDisplay(&L);
    
    
    printf(" 刪除數據 \n");
    printf("請輸入要刪除元素的位置:");
    scanf("%d", &i);
    DelList(&L, i);
    ListDisplay(&L);
    return 0;
}

在這裏插入圖片描述


scanf("%s",&a);
likely error : " "中除了%s,不能有其它字符; & 不能忘掉

&和*的區別,及作用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章