顺序存储结构
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
初
初始化
使用顺序表存储数据:
1.要申请足够大小的物理空间;
2.顺序表申请的存储容量;
3.顺序表的长度,也就是表中存储数据元素的个数;
首先,我们要自定义顺序表,C语言代码实现如下:
typedef struct Table{
int *head; //声明动态数组
int length; //记录表的当前长度
int size; //记录表的分配容量(最大长度)
}table;
接下来是顺序表的初始化,要进行如下操作:
1.给 head 动态数据申请足够大小的物理空间;
2.给 size 和 length 赋初值;
C语言代码实现如下:、
#define Size 5 //顺序表申请空间的大小
table initTable(){
table t;
t.head=(int*)malloc(Size*sizeof(int)); //构造一个空的顺序表,动态申请存储空间
if(!t.head) //如果申请失败,作出提示并安全退出程序
{
printf("初始化失败");
exit(0);
}
t.length=0; //表的初始长度为0
t.size=Size; //表的存储空间(最大长度)为Size
return t;
}
输出奇数
顺序表的初始化工作做好了,尝试做一个小操作:输出顺序表中的奇数
#include<stdio.h>
#include<stdlib.h>
#define Size 5
typedef struct Table{
int *head; //声明动态数组
int length; //记录表的当前长度
int size; //记录表的分配容量(最大长度)
}table;
table initTable(){
table t;
t.head=(int*)malloc(Size*sizeof(int)); //构造一个空的顺序表,动态申请存储空间
if(!t.head) //如果申请失败,作出提示并安全退出程序
{
printf("初始化失败");
exit(0);
}
t.length=0; //表的初始长度为0
t.size=Size; //表的存储空间(最大长度)为Size
return t;
}
//输出奇数
void displayOddNumber(table t){
int i;
printf("输出顺序表中的奇数:\n");
for(i=0;i<t.length;i++)
{
if(t.head[i]%2==1)
printf("%d\n",t.head[i]);
}
printf("\n");
}
int main()
{
int i;
table t=initTable();
//添加元素
for(i=1;i<=Size;i++)
{
t.head[i-1]=i;
t.length++;
}
displayOddNumber(t);
return 0;
}
程序运行结果如下:
个人笔记,感谢阅读。