美文网首页简友广场
线性表的顺序存储

线性表的顺序存储

作者: 始于尘埃 | 来源:发表于2019-05-14 17:46 被阅读0次

    我与数据结构有个约会,带你领略不一样的数据结构!

    
    #include <stdio.h>
    
    #include <stdlib.h>
    
    #define Maxsize 100
    
    typedef int ElemType;
    
    //定义
    
    typedef struct{
    
    ElemType data[Maxsize];
    
    int length; //当前长度
    
    }Sqlist;
    
    //创建
    
    void CreatList(Sqlist &L,int n){
    
    int i = 0;
    
    //初始化
    
    L.length = 0;
    
    //用户输入n位元素
    
    for(i;i<n;i++){
    
    scanf("%d",&L.data[i]);
    
    }
    
    L.length  = n;
    
    }
    
    //插入元素
    
    bool InsertList(Sqlist &L,int i,ElemType e){
    
    //判断合法性
    
    if(i<1 || i>Maxsize+1){
    
    return 0;
    
    }
    
    if(L.length > Maxsize){
    
    return 0;
    
    }
    
    //挪动
    
    for(int j = L.length;j>=i;j--){
    
    L.data[j] = L.data[j-1]; //从后往前挪
    
    }
    
    //插入
    
    L.data[i-1] = e;
    
    L.length++;
    
    return true;
    
    }
    
    //删除
    
    bool DeleList(Sqlist &L,int i,int &e){
    
    //判断合法性
    
    if(i<1 || i>L.length){
    
    return false;
    
    }
    
    e=L.data[i-1];
    
    for(int j=i;j<L.length;j++){
    
    L.data[j-1] = L.data[j];
    
    }
    
    L.length--;
    
    return true;
    
    }
    
    //输出
    
    void PrintList(Sqlist L){
    
    int len = L.length;
    
    for(int k =0;k<len;k++){
    
    printf("->%d",L.data[k]);
    
    }
    
    printf("\n");
    
    }
    
    int main()
    
    {
    
    int e;
    
    Sqlist l;
    
    CreatList(l,5);
    
    PrintList(l);
    
    InsertList(l,2,9);
    
    PrintList(l);
    
    DeleList(l,2,e);
    
    PrintList(l);
    
    system("pause");
    
    return 0;
    
    }
    
    

    有问题的朋友,欢迎留言交流哦!

    相关文章

      网友评论

        本文标题:线性表的顺序存储

        本文链接:https://www.haomeiwen.com/subject/fcseaqtx.html