zoukankan      html  css  js  c++  java
  • C语言实现顺序表(增删)

    内容十分简单,不做过多的文字赘述。

    #include<stdio.h>
    
    #define MAXSIZE 50
    #define ElemType char
    typedef struct{
        ElemType data[MAXSIZE];
        int length;
    }sqlist;
    
    void Init(sqlist* l){
        l->length = 0;
    }
    
    void CreateList(sqlist* l){
        
    }
    
    /**
     * 顺序表的插入
     * :平均时间复杂度O(n)
     * */
    int ListInsert(sqlist* list,int i,ElemType e){
        if(i<0||i>list->length+1){
            printf("error:位置错误!");
            return 0;
        }else if(list->length>=MAXSIZE){
            printf("存储空间已满!");
            return 0;
        }else{
            for(int j=list->length;j>=i;j--){
                list->data[j] = list->data[j-1];
            }
            list->data[i] = e;
            list->length++;
            return 1;
        }
        return 0;
    }
    
    /**
     * 顺序表删除
     * 平均时间复杂度:O(n)
     * */
    int ListRemove(sqlist* list,int i,ElemType *e){
        
        if(i<0||i>(*list).length){
            printf("error: 位置错误");
            return 0;
        }else{
            *e = list->data[i];
            for(int j=i;j<list->length;j++){
                list->data[j] = list->data[j+1];
            }
            return 1;
        }
        return 0;
    }
    
    int main(int argc, char const *argv[])
    {
    
        sqlist sq;
        Init(&sq);
    
        printf("%d
    ",sq.length);
        ListInsert(&sq,0,'a');
        printf("%d: %c
    ",sq.length,sq.data[0]);
        ListInsert(&sq,1,'b');
        printf("%d: %c
    ",sq.length,sq.data[1]);
        ListInsert(&sq,2,'c');
        printf("%d: %c
    ",sq.length,sq.data[2]);
        ListInsert(&sq,3,'d');
        printf("%d: %c
    ",sq.length,sq.data[3]);
        ListInsert(&sq,4,'e');
        printf("%d: %c
    ",sq.length,sq.data[4]);
    
        char a;
        ListRemove(&sq,1,&a);
        printf("length: %d index:1:%c return:%c",sq.length,sq.data[1],a);
        return 0;
    }

    运行结果如下图所示:

  • 相关阅读:
    DMN 决策逻辑与决策依赖之间的联系
    DMN 决策依赖DRG和DRD
    DMN 决策模型标记 介绍
    DMN 决策模型和标记 Decision Model And Notation
    RuleML 例子
    RuleML 例子
    RuleML 例子
    RuleML入门(下)
    RuleML 入门(上)
    osg 线框模式,点模式切换
  • 原文地址:https://www.cnblogs.com/ambdyx/p/12656194.html
Copyright © 2011-2022 走看看