线性表的本质
线性表是最简单、最基本、最常用的一种线性结构。它包括两种存储方式:顺序存储方式和链式存储方式。
一、线性表的定义
* 线性表是零个或多个数据元素的集合
* 线性表中数据元素之间是有顺序的
* 线性表中的数据元素个数是有限的
* 线性表中数据元素的类型必须相同
> 定义:线性表是具有相同类型的 n (>=0)个数据元素的有限序列
(A0, A1, A2 ..., An) Ai表示项,n表示长度
二、线性表的性质
> 性质
* A0为线性表的第一个元素,只有一个后继
* An为线性表的最后一个元素,只有一个前驱
* 除A0和An外的其它元素Ai,既有前驱又有后继
* 线性表能够逐项访问和顺序存取
线性表的相关操作
一、线性表操作的实现
* 线性表在程序中表现为一种特殊的数据类型
* 线性表的操作在程序中的表现为一组函数
如下实例:
List.h
#ifndef _EG_2_1_H_
#define _EG_2_1_H_
typedef void List;
typedef void ListNode;
// 该方法用于创建并且返回一个空的线性表
List* List_Create();
// 该方法用于销毁一个线性表list
void List_Destroy(List* list);
// 该方法用于将一个线性表list中的所有元素清空,使得线性表回到创建使的初始状> 态
void List_Clear(List* list);
// 该方法用于返回一个线性表list中的所有元素个数
int List_Length(List* list);
// 该方法用于向一个线性表list的pos位置处插入
// 新元素 node,返回1表示插入成功,0表示插入失败
int List_Insert(List* list, ListNode* node, int pos);
// 该方法用于获取一个线性表list的pos位置处的元素返回值为pos位置处的元素,NUL L表示获取失败
ListNode* List_Get(List* list, int pos);
// 该方法用于删除一个线性表list的pos位置处的元素返回值为被删除的元素,NULL表示删除失败
ListNode* List_Delete(List* list, int pos);
#endif