数据结构-线性表

1 线性表的定义

线性表是相同数据类型的n(n>=0)个数据元素的有限 序列。若用L命名线性表,则其一般表示为:
L = [ a ( 0 ) , a ( 1 ) , . . . , a ( n ) ] L=[a(0),a(1), ...,a(n)] L=[a(0),a(1),...,a(n)]
在在这里要注意:

  • 数据类型要相同;
  • 数据元素的数量是有限的;
  • 数据元素之间是存在次序关系的;
  • 数据元素的类型都相同,这说明每个元素占有相同大小的存储空间。

线性表的基本操作

常用操作:

  • InitList(&L):构造一个空的线性表L,分配内存空间
  • DestroyList(&L):销毁线性表。释放线性表L所占用的内存;
  • ListInsert(&L, i, e):在线性表L的i位置插入数据e;
  • ListDelete(L, i, &e):删除线性表L的i位置的数据并用e返回删除元素值;
  • LocateElement(L, e):查找线性表L中值为e的元素的位置;
  • GetElement(&L, i):获取列表L中第i个元素的值。

其他操作:

  • Length(L):返回线性表中元素的个数;
  • PringList(L):按照线性表的顺序打印线型表L的值;
  • Empty(L):若L为空,返回true,否则返回false。

注意:给L带上&的函数(方法)一般是要对线性表L的数据进行改变的函数(方法),否则不带&。

2 顺序表

2.0 定义

用顺序存储的方式实现的线性表。
* 顺序存储:逻辑上相邻<-->物理存储上相邻。

数据结构的定义:

#define MAX_SIZE 10  // 定义顺序表的最大长度

typedef struct {
	ElementType data[MAX_SIZE];  // 用静态数组存放数据
	int length;  // 顺序表当前的长度
} OrderList;

2.2 创建顺序表

#define MAX_SIZE 10  // 定义顺序表的最大长度

typedef struct {
	ElementType data[MAX_SIZE];  // 用静态数组存放数据
	int length;  // 顺序表当前的长度
} OrderList;

void InitList(OrderList &L) {
	for(int i = 0;i < MAX_SIZE; i++) {
		L.data[i] = 0;  // 初始化默认值
	}
	L.length = 0;
}

未完待续...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值