数据结构的顺序存储结构——顺序表(一) 顺序表的初始化(C语言)

顺序存储结构

顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

初始化

使用顺序表存储数据:
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;
}

程序运行结果如下:
在这里插入图片描述
个人笔记,感谢阅读。
在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 1

打赏作者

呵乌誒

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值