线性表的顺序存储结构

线性表的顺序存储结构

1.前言

最近整理一下数据结构与算法的笔记,本文为线性表的顺序存储结构。

参考书籍:大话数据结构。

学习方法:

  • 多画图,便于自己理解
  • 动手敲代码

代码:

https://gitee.com/YangJie100/data-structures-and-algorithms/tree/master

2.线性表的顺序存储结构体

线性表的顺序存储,即用一段地址连续的存储单元依次存储线性表的数据元素

因此,可以使用一维数组来实现线性表的顺序存储结构

#define MAXSIZE 20			//存储空间分配
#define OK		1
#define ERROR	0
#define TRUE	1
#define FALSE	0

typedef int ElemType;
typedef int Status;			//函数返回状态值

//线性表的顺序存储结构体
typedef struct LinkList
{
   
	ElemType data[MAXSIZE];
	int length;				//线性表当前长度
}LinkList, *PLinkList;

3.线性表的基本操作

3.1 初始化顺序线性表

Status InitList(PLinkList L)
{
   
	L->length = 0;
	return OK;
}

3.2 判断线性表是否为空

若L为空表,则返回TRUE,否则返回FALSE

Status IsListEmpty(LinkList L)
{
   
	if (L.length == 0)
		return TRUE;
	else
		return FALSE;
}

3.3 将L重置为空表

Status ClearList(PLinkList L)
{
   
	L->length = 0;
	return OK;
}

3.4 返回线性表中数据元素的个数

int ListLength(LinkList L)
{
   
	return L.length;
}

3.5 打印线性表中的每个元素

依次对L的每个数据元素进行输出

Status ListPrint(LinkList L)
{
   
	int i;
	for (i = 0; i < L.length; i++)
	{
   
		printf("%d ", L.data[i]);
	}
	printf("\n");
	return OK;
}

3.6 返回某个元素的位置

返回L中第1个与数据e满足相等关系的元素位置,若这样的数据元素不存在,则返回值为0

int LocateElem(LinkList L, ElemType e)
{
   
	int i;
	if (L.length == 0)
		return 0;

	for (i = 0; i < L.length; i++)
	{
   
		if (L.data[i] == e)
			break;
	}

	if (i >= L.length)
		return 0;

	return i + 1;
}

3.7 获取某一位置的元素值

获得元素操作:用e返回L中第pos个数据元素的值

Status GetElem(LinkList L, int pos, ElemType* e)
{
   
	if (L.length == 0 || pos<1 || pos>L.length)
	{
   
		return ERROR;
	}
	*e 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值