此处介绍了顺序表创建的两种方法,一种是顺序表中包含数组,和数组长度;另一种是包含一指针(数组首地址),和数组长度,使用该方法需要在定义数组的时候定义大小;同时此处使用了将整数转化为字符串的方法,在输出时将大量的数据10个一行进行打印输出。
具体示例如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
#define maxsize 100
#include<string>
//顺序表的创建 法1
//typedef struct
//{
// int arr[maxsize];//这里也可以创建一个结构体类型的数组 数组类型 数组名[数组大小]
// int length;
//}Sqlist;
//
//void creatSqlist(Sqlist& sq)
//{
// sq.length = 0;
// for (int i = 0; i < 100;i++)
// {
// sq.arr[i] = i + 1;
// sq.length++;
// }
// cout << "已赋值" << endl;
//}
//void outputSqlist(Sqlist & sq)
//{
// for (int i = 0; i < sq.length; i++)
// {
// cout << sq.arr[i] << " ";
// }
// cout <<"已输出"<< endl;
//}
//顺序表的创建 法2
typedef struct student
{
string name;
int age;
}stu;
typedef struct
{
stu* st;
int length;
}Sqlist;
void creatSqlist(Sqlist& sq)
{
sq.length = 0;
sq.st = new stu[maxsize];
for (int i = 0; i < 100; i++)
{
string name = "st_";
sq.st[i].name = name+ to_string(i);
//这里也可以用(sq.st+i)->name = name+ to_string(i),不知道上面的数组什么原理,反正可以直接用,然后数组内存的首地址+i表示第i个元素的地址
sq.length++;
}
}
void outputSqlist(Sqlist& sq)
{
int j = 0;
for (int i = 0; i < sq.length; i++)
{
cout << sq.st[i].name << " ";
j++;
if (j ==10)
{
j = 0;
cout << endl;
}
}
}
int main()
{
Sqlist sq;
creatSqlist(sq);
outputSqlist(sq);
return 0;
}
输出结果如下: