标签:考研 指针 建立 经验 初始 工程 专业 经验分享 size
声明:本人为21界考生,软件工程专业,备考科目:政治、英二、数二、854,正在备考中,所有文字仅为备考过程想记录下来的的经验及一些坑,仅供参考,当然我也希望这会成为一篇高分经验分享。
//定义结构
#define MAXSIZE 10 //存储空间最大分配量
typedef struct {
ElemType data[MAXSIZE]; //用静态的“数组”存放数据元素
int length; //顺序表的当前长度
}SqList; //顺序表的类型定义(静态分配方式)
//建立顺序线性表——动态分配
#include<stdio.h>
#include<stdlib.h> //包含malloc free的头文件
#define InitSize 10 //顺序表的初始长度
typedef struct {
int *data; //指示动态分配数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
}SeqList; //顺序表的类型定义(动态分配方式)
//用malloc函数申请一片连续的存储空间
void InitList(SeqList* L) {
L->data = (int*)malloc(InitSize * sizeof(int));
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); //释放原来的内存空间
}
void ListInsert(SqList* L, int i, ElemType e) {
for (int j = L->length; j >= i; j--) { //将第i个元素及之后的元素后移
L->data[j] = L->data[j - i];
}
L->data[i - 1] = e; //在i的位置放入e
L->length++; //长度加1
}
标签:考研 指针 建立 经验 初始 工程 专业 经验分享 size
原文地址:https://www.cnblogs.com/wangjiaolong/p/13159631.html