顺序表 动态分配 C++

Run Settings
LanguageC++
Language Version
Run Command
# include<stdio.h> # include<stdlib.h> #define InitSize 10 // 默认最大长度 // #define MaxSize 10 // 定义最大长度 typedef struct { int *data; // 指示动态分配数组的指针 int MaxSize; // 用静态的 “数组” 存放数据元素 int length; }SqList; void InitList (SqList &L) { // for (int i = 0; i < MaxSize; i++) L.data = (int *) malloc (InitSize *sizeof(int)); L.MaxSize = InitSize; L.length = 0; // 顺序表初始长度为 0 } void IncreaseSize(SqList &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() { SqList L; // 声明一个顺序表 InitList(L); // 初始化顺序表 IncreaseSize(L,5); for(int i =0;i<L.MaxSize;i++) { printf("data[%d]=%d\n",i,L.data[i]); } return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines