zoukankan      html  css  js  c++  java
  • 顺序表的插入

    #include <stdio.h>
    #include <stdlib.h>
    
    #define ERROR 0
    #define OK 1
    
    typedef struct Vector {
        int size, length;
        int *data;
    } Vector;
    
    void init(Vector *vector, int size) {
        vector->size = size;
        vector->length = 0;
        vector->data = (int *)malloc(sizeof(int) * size);
    }
    
    int insert(Vector *vector, int loc, int value) {
        //如果传入的参数loc 比 0小,或者比len大,那么直接返回ERROR
        if(loc<0||loc>vector->length){
          return ERROR;
        }
        //如果已经到上限,也就是说 顺序表中元素数量vector->length大于等于顺序表的容量 vector->size 直接返回ERROR
        if(vector->length>=vector->size){
          return ERROR;
        }
      //每次向指定位置loc插入一个元素之前,都要将loc之后的所有元素顺次向后移动,从而给新的元素腾出一个空间
        for(int i=vector->length;i>loc;--i){
           vector->data[i] = vector->data[i-1];
        }
         //将插入的元素值value赋给vector->data[loc]
        vector->data[loc]=value;
        //将顺序表中元素个数加1
        vector->length++;
        return OK;
    }
    
    void clear(Vector *vector) {
        free(vector->data);
        free(vector);
    }
    
    int main() {
        Vector *a = (Vector *)malloc(sizeof(Vector));
        init(a, 100);
        printf("%d
    ", insert(a, 1, 0));
        printf("%d
    ", insert(a, 0, 1));
        printf("%d
    ", insert(a, 2, 1));
        printf("%d
    ", insert(a, 1, 2));
        printf("%d
    ", insert(a, 0, 3));
        clear(a);
        return 0;
    }
  • 相关阅读:
    win10 uwp 如何判断一个对象被移除
    win10 uwp 如何判断一个对象被移除
    上传代码 CodePlex
    上传代码 CodePlex
    如何使用 Q#
    让 AE 输出 MPEG
    让 AE 输出 MPEG
    解决 vs 出现Error MC3000 给定编码中的字符无效
    解决 vs 出现Error MC3000 给定编码中的字符无效
    PHP date_date_set() 函数
  • 原文地址:https://www.cnblogs.com/qingjiawen/p/15531312.html
Copyright © 2011-2022 走看看