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


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

    #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("
    ");
        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函数

  • 相关阅读:
    银行业务调度系统
    交通灯管理系统
    Java高新技术
    Java反射机制
    java的集合框架
    正则表达式
    IPD CBB
    TCP的可靠传输(依赖流量控制、拥塞控制、连续ARQ)
    等价类划分
    Pycharm常用配置汇总
  • 原文地址:https://www.cnblogs.com/Li-ningning/p/14619767.html
Copyright © 2020-2023  润新知