【数据结构】线性表(WD)
作者:互联网
目录
顺序表的实现——静态分配
#include <bits/stdc++.h>
#define MaxSize 10 //定义最大长度
using namespace std;
typedef struct
{
int data[MaxSize]; //用静态数组存放数据元素
int length; //顺序表的当前长度
} SqList; //顺序表的当前定义
//初始化顺序表
void InitList(SqList &L)
{
for (int i = 0; i < MaxSize; i++)
{
L.data[i] = 0; //将所有数据元素设置为默认初始值
}
L.length = 0; //顺序表初始长度为0
}
int main()
{
SqList L; //声明一个顺序表
InitList(L); //初始化顺序表
for (int i = 0; i < MaxSize; i++)
{
printf("data[%d]=%d\n", i, L.data[i]);
}
return 0;
}
output:
data[0]=0
data[1]=0
data[2]=0
data[3]=0
data[4]=0
data[5]=0
data[6]=0
data[7]=0
data[8]=0
data[9]=0
顺序表的实现——动态分配
#include <bits/stdc++.h>
#define InitSize 10 //默认的最大长度
using namespace std;
typedef struct
{
int *data; //指示动态分配数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
} SeqList; //顺序表的当前定义
//初始化顺序表
void InitList(SeqList &L)
{
//用malloc函数申请一片连续的存储空间
L.data = (int *)malloc(InitSize * sizeof(int));
L.MaxSize = InitSize;
L.length = 0;
}
//增加动态数组的长度
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.MaxSize; i++)
// {
// L.data[i] = p[i]; //将数据复制到新区域
// }
L.MaxSize = L.MaxSize + len; //更新顺序表最大长度
free(p); //释放原来的内存空间
}
int main()
{
SeqList L; //声明一个顺序表
InitList(L); //初始化顺序表
cout << L.MaxSize << endl;
IncreaseSize(L, 5);
cout << L.MaxSize << endl;
return 0;
}
output:
10
15
标签:WD,线性表,int,InitList,MaxSize,顺序,长度,数据结构,data 来源: https://www.cnblogs.com/zhulu506/p/14967618.html