#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define InitSize 10
typedef struct {
int *data;
int length;
int maxsize;
}SqList;
void InitList(SqList &L)
{
L.length = 0;
L.data = (int *)malloc(InitSize * sizeof(int));
L.maxsize = InitSize;
for (int i = 0; i < L.maxsize; i++)
L.data[i] = 0;
}
void IncreaseSize(SqList &L,int increase)
{
int *tmp;
tmp = L.data;
L.data = (int*)malloc((L.maxsize + increase) * sizeof(int));
for (int i = 0; i < L.length; i++)
L.data[i] = tmp[i];
L.maxsize += increase;
}
void input(SqList &L)
{
int n = 0;
cout << "请输入您要输入元素的个数" << endl;
cin >> n;
if (n < L.maxsize)
{
cout << "请输入元素"<<endl;
for (int i = 0; i < n; i++)
{
cin >> L.data[i];
L.length++;
}
cout << "表已完成填充" << endl;
}
else
{
cout << "原本容量不够,进行扩容" << endl;
IncreaseSize(L, n - L.maxsize);
cout << "请输入元素" << endl;
for (int i = 0; i < n; i++)
{
cin >> L.data[i];
L.length++;
}
cout << "表已完成填充" << endl;
}
}
void output(SqList &L)
{
for (int i = 0; i < L.length; i++)
cout <<"你写入的第 "<< i+1 <<" 个数据是 "<< L.data[i] << endl;
}
int main()
{
SqList L;
InitList(L);
input(L);
output(L);
system("pause");
return 0;
}
线性表的建立(输入+扩容+遍历)
最新推荐文章于 2022-12-01 22:27:31 发布