首页 > 其他 > 详细

顺序表的动态分配

时间:2020-11-19 00:23:11      阅读:39      评论:0      收藏:0      [点我收藏+]

顺序表的特点:

1.随机访问,即可以在O(1)时间内找到第i个元素

2.扩展容量不方便(即使采用动态分配的方式实现,拓展长度的时间复杂度也比较高)

3.插入、删除操作不方便,需要移动大量元素

 

 

 

下面为主要代码及注释

#include "stdlib.h"
#define InitSize 10//默认的最大长度
typedef struct{
    int *data;//指示动态分配数组的指针
    int MaxSize;//顺序表的最大容量
    int Length;//
}SeqList;

void InitList(SeqList &L){
    L.data=(int *)malloc(InitSize*sizeof(int));//用malloc函数申请一片连续的存储空间
    L.Length=0;
    L.MaxSize=InitSize;
}

void IncreaseSize(SeqList &L,int len){
    int *p=L.data;
    L.data=(int *)malloc((L.MaxSize+len)*sizeof(int));
    for(int i=0;i<L.Length;i++){
        L.data[i]=p[i];//将数据复制到新区域
    }
    L.MaxSize=L.MaxSize+len;//顺序表最大长度增加len
    free(p);//释放原来的内存空间
}

int main()
{
    SeqList L;//声明一个顺序表
    InitList(L);//初始化顺序表
    //...往顺序表随便插入几个元素...
    IncreaseSize(L,5);
    return 0;
}

 

顺序表的动态分配

原文:https://www.cnblogs.com/Llingfeng/p/14002603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!