美文网首页
数据结构---顺序表

数据结构---顺序表

作者: Bean_Nan | 来源:发表于2017-04-15 21:42 被阅读0次

插入,删除,扩容,清空内存

#include <stdio.h>
#include <malloc.h>

#define OK 1
#define ERROR 0

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) {
    if (loc < 0 || loc > vector->length) {
        return ERROR;
    }
    if (vector->length >= vector->size) {
        expand(vector);
    }
    for (int i = vector->length; i > loc; i--) {
        vector->data[i] = vector->data[i - 1];
    }
    vector->data[loc] = value;
    vector->length++;

    return OK;
}

int delete(Vector *vector, int index) {
    if (index < 0 || index >= vector->length) {
        return ERROR;
    }
    for (int i = index; i < vector->length; i++) {
        vector->data[i - 1] = vector->data[i];
    }
    vector->length--;

    return OK;
}

void expand(Vector *vector) {
    int *old_data = vector->data;
    vector->size = vector->size * 2;
    vector->data = (int *)malloc(sizeof(int) * vector->size);

    for (int i = 0; i < vector->length; i++) {
        vector->data[i] = old_data[i];
    }

    free(old_data);
}

void clear(Vector *vector) {
    free(vector->data);
    free(vector);
}

int main() {
    printf("Hello, World!\n");
    return 0;
}

相关文章

  • 【数据结构】线性表之单链表

    完整代码需结合前面一篇顺序表数据结构学习-线性表之顺序表各种操作网易云课堂小甲鱼课程链接:数据结构与算法 线性表的...

  • 2.6 数据结构 --1.4 链表

    数据结构子目录https://www.jianshu.com/p/a344fa483655 顺序表 顺序表按照存储...

  • 带头结点的链表

    1、链表和顺序表 链表是很常见的数据结构,链表总是会和线性顺序表来比较。 1.1、顺序表 具有随机存储的特性,给定...

  • 【数据结构】单链表(Singly Linked List ) &

    更多精彩尽在微信公众号【程序猿声】 数据结构-线性表|顺序表|链表(中) 本节纲要 预备知识 顺序表(Sequen...

  • Java造轮子-数据结构-线性表

    数据结构-线性表 @(数据结构) 线性表是数据结构中的逻辑结构。可以存储在数组上,也可以存储在链表上。 顺序表(数...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构-线性表

    [TOC] 线性表-List list是最简单的数据结构,可分为顺序表与链表,顺序表内部数据存储由数组实现,链表则...

  • 数据结构

    数据结构 数据结构概念 顺序表 链表 队列 栈 二叉树 常用排序算法

  • python中的树数据结构

    线性数据中的典型顺序表和链表已经讲完: 《顺序表数据结构在python中的应用》 《python实现单向链表数据结...

  • josephus问题

    线性表是数据结构的中很常见的结构,其中一种就是顺序表,python已经内置了顺序表。list就是循序表的的实现。下...

网友评论

      本文标题:数据结构---顺序表

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