首页 > 其他 > 详细

王道数据结构代码:顺序表实现动态内存分配

时间:2021-04-06 01:04:49      阅读:31      评论:0      收藏:0      [点我收藏+]

主要实现顺序表内存满之后再次申请内存的操作

#include<bits/stdc++.h>
using namespace std;
#define InitSize 10 
typedef struct {
    int *data;
    int lenght;
    int MaxSize ;
}SeqList;
void InitList(SeqList &L){
    L.data = (int *)malloc(sizeof(int)*InitSize);
    L.lenght = 0;
    L.MaxSize = InitSize;
}
void IncreaseList(SeqList &L , int len){
    int *p = L.data;
    L.data = (int *)malloc(sizeof(int)*(L.MaxSize+len));
    for(int i = 0 ; i < L.lenght ; i++){
        L.data[i] = p[i];
    }
    L.MaxSize = L.MaxSize + len;
    free(p);
}
int main(){
    SeqList L;
    InitList(L); // 初始化顺序表 
    for(int i = 0 ; i < L.MaxSize ; i++) L.data[i] = i; // 录入数据 
    L.lenght = L.MaxSize; /// 录入数据结束记得修改顺序表的长度 
    
    for(int i = 0 ; i < L.lenght ; i++) printf("%d ",L.data[i]);
    printf("\n");
    IncreaseList(L,10);/// 增加10个长度
    for(int i = L.lenght ; i < L.MaxSize ; i++) L.data[i] = i; // 二次录入数据 
    L.lenght = L.MaxSize;
    for(int i = 0 ; i < L.lenght ; i++) printf("%d ",L.data[i]); 
    return 0;
} 

重新申请内存是可以用realloc函数

王道数据结构代码:顺序表实现动态内存分配

原文:https://www.cnblogs.com/Li-ningning/p/14619767.html

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