【数据结构】顺序表的结构体和建⽴
⾸先,我们先来了解⼀下数据的存储⽅式:顺序存储和链式存储。
⽽结构分为:线性结构和⾮线性结构。
常见的线性结构就是栈,队列,串,数组等,常见的⾮线性结构就是⼆叉树等。
⽽顺序表就是就是线性结构,并且是顺序存储。接下来理论我就尽量说的通俗易懂。
⽬录
⼀、顺序表的结构体
typedef struct Seqlist
{
int elem[100];//数组
int length;//数组长度
}Seqlist;
typedef struct Seqlist 的意思就是定义⼀个名字为 Seqlist 的结构体,结构体⾥⾯包含⼀个名为elem的整型数组和⼀个整型的变量,⽤来记录数组的长度。
所以说定义⼀个Seqlist 类型的数据,那么他这个数据这个数据中就包含⼀个整型数组和变量,⽽顺序表就是要把⼀些数据存储到⼀个有顺序的地⽅,这个地⽅就是数组,length⽤来记录数组的长度,来⼀个数据length+1,⾛⼀个数据length-1。
⽽建⽴Seqlist类型的数据只需要让length随着进来⼏个数变化即可。
⼆、顺序表的建⽴
1.Seqlist类型的函数(有返回值)
Seqlist creatseqlist(Seqlist s)
{
int i;//定义⼀个变量,⽤来当输⼊的值
int j=0;//数组的下⾓标
cin>>i;//输⼊i的值
s.length=0;//使数组长度为0,初始化数组
while(i != -1){//判断是否为-1,是退出循环,否继续循环
s.elem[j]=i;//将输⼊进来的数存⼊数组中
j++;//数组下⾓标后移
s.length++;//数组长度加1
cin>>i;
}
return s;//返回
}
定义数组初始化
此处本⼈⽤c++写的代码,cin就是输⼊。
定义两个变量,⼀个作为输出的值,⼀个作为数组的下⾓标,初始化Seqlist类型的变量就是将变量中的数组长度赋值为0。
循环⽤来将输⼊进来的数存放在Seqlist类型的变量的数组中,并且增加数组的长度,进⼊循环的条件就是输⼊的数不能等于-1,这个条件可以根据⾃⼰的喜好来设定。
最后返回Seqlist类型的变量。
2.void类型的函数(⽆返回值)
void creatseqlist(Seqlist *s)
{
int i;
int j=0;
cin>>i;
s->length=0;//数组长度初始化为0
while(i != -1){
s->elem[j]=i;//将输⼊进来的数存放进数组中
j++;
s->length++;//数组长度+1
cin>>i;
}
}
⽆返回型的函数⽆⾮就是将形参变成Seqlist类型的指针,传⼊的时候传⼊地址即可。
其余的将“.”换成“->”即可,思想不变。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论