• 使用线性表的顺序存储结构定义(静态)实现线性表的初始化、插入、删除和显示功能


    #include<stdio.h>
    #define MaxSize 100
    typedef int DataType;
    
    
    typedef struct//定义结构体Seqlist
    {
        DataType list[MaxSize];
        int size;
    } SeqList;
    
    
    //初始化顺序表L
    void ListInitiate(SeqList *L)
    {
        L->size=0;               //定义初始数据元素个数
    }
    
    
    int ListLength(SeqList L)//当前数据元素个数
    {
        return L.size;
    }
    
    int ListInsert(SeqList *L,int i,DataType x)
    {
        int j;
        if(L->size>=MaxSize)
        {
            printf("顺序表已满无法插入!
    ");
            return 0;
        }
        else if(i<0||i>L->size)
        {
            printf("i is error");
            return 0;
        }
        else
        {
            for(j=L->size; j>i-1; j--)L->list[j]=L->list[j-1];
    
    
            L->list[i-1]=x;
            L->size++;
            return 0;
        }
    }
    
    //删除数据元素
    int ListDelete(SeqList *L,int i)
    {
        int j;
        if(L->size<=0)
        {
            printf("顺序表已无数据元素可删!
    ");
            return 0;
        }
        else if(i<0||i>L->size-1)
        {
            printf("i is error
    ");
            return 0;
        }
        else
        {
            //*x=L->list[i];
            for(j=i; j<=L->size-1; j++)L->list[j-1]=L->list[j];
    
    
            L->size--;
            return 0;
        }
    }
    
    int main(void)
    {
        SeqList La,Lb,Lc;
        int i,x;
        int n,m;//线性表长度
    
    
        ListInitiate(&La);
        printf("请输入线性表La的长度:");
        scanf ("%d",&n);
        La.size=n;
        printf("请输入线性表La中的元素:");
        for(i=0; i<n; i++)
            scanf ("%d",&La.list[i]);
    
    
        printf("请输入要插入到线性表La中的数字x和插入的位置i:");
        scanf("%d%d",&x,&i);
        ListInsert(&La,i,x);
        printf("线性表La=");
        for(i=0; i<La.size; i++)
            printf("%d ",La.list[i]);
    
    
        printf("
    请输入要删除的数字的位置:");
        scanf("%d",&i);
        ListDelete(&La,i) ;
        printf("线性表La=");
        for(i=0; i<La.size; i++)
            printf("%d ",La.list[i]);
        return 0;
    }
  • 相关阅读:
    AtCoder Grand Contest 001F Wide Swap
    生成函数/母函数入门学习
    树的点分治入门小结
    树链剖分入门小结
    有重复元素的全排列
    二项式界
    二项系数
    排列问题、组合问题
    容斥原理
    P3372 【模板】线段树 1
  • 原文地址:https://www.cnblogs.com/qq2424260747/p/4838414.html
Copyright © 2020-2023  润新知