0
点赞
收藏
分享

微信扫一扫

uniapp的api用法大全

何以至千里 2024-02-09 阅读 24

目录

1.介绍顺序表

2.初始化

3.插入

4.删除

5.获取长度

6.按位置获取元素和查找指定元素的位置

7.完整代码

8.小问题


1.介绍顺序表

2.初始化

3.插入

4.删除

5.获取长度

int sizeList(ArrayList list){
    return list->size;   //直接返回size就完事
}

6.按位置获取元素和查找指定元素的位置

E * getList(ArrayList list, int index){
   if(index < 1 || index > list->size) return NULL;//如果超出范围就返回NULL
   return &list->array[index - 1];
}


int findList(ArrayList list, E element){
    for (int i = 0; i < list->size; ++i) { //一直遍历,如果找到那就返回位序
        if(list->array[i] == element) return i + 1;
    }
    return -1;  //如果遍历完了都没找到,那么就返回-1
}

7.完整代码

#include <stdio.h>
#include <stdlib.h>

typedef int E;

struct List {
    E * array;
    int capacity;
    int size;
};

typedef struct List * ArrayList;

_Bool initList(ArrayList list){
    list->array = malloc(sizeof(E) * 10);
    if(list->array == NULL) return 0;
    list->capacity = 10;
    list->size = 0;
    return 1;
}

_Bool insertList(ArrayList list, E element, int index){
    if(index < 1 || index > list->size + 1) return 0;

    if(list->size == list->capacity) {
        int newCapacity = list->capacity + (list->capacity >> 1);
        E * newArray = realloc(list->array, newCapacity * sizeof(E));
        if(newArray == NULL) return 0;
        list->array = newArray;
        list->capacity = newCapacity;
    }

    for (int i = list->size; i > index - 1; --i)
        list->array[i] = list->array[i - 1];
    list->array[index - 1] = element;
    list->size++;
    return 1;
}

_Bool deleteList(ArrayList list, int index){
    if(index < 1 || index > list->size) return 0;
    for (int i = index - 1; i < list->size - 1; ++i)
        list->array[i] = list->array[i + 1];
    list->size--;
    return 1;
}

int sizeList(ArrayList list){
    return list->size;
}

E * getList(ArrayList list, int index){
    if(index < 1 || index > list->size) return NULL;
    return &list->array[index - 1];
}

int findList(ArrayList list, E element){
    for (int i = 0; i < list->size; ++i) {
        if(list->array[i] == element) return i + 1;
    }
    return -1;
}

8.小问题

举报

相关推荐

0 条评论