码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构-线性表

时间:2015-02-27 00:10:39      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

算法的设计依赖数据的逻辑结构

线性表的逻辑结构为:在数据元素的有限集合中,存在一个唯一的一个被称为“第一个“的数据元素,存在唯一一个被称为“最后一个“的数据元素,除了第一个元素外,所有的元素都只有一个前驱,除了最后一个数据元素外,所有的元素都有一个后驱。

通过了解线性表的逻辑结构,可以设计相应的算法:

Status initList(SqList *L);
/* 操作结果:构造一个空的顺序线性表 */

Status destroyList(SqList *L);
/* 初始条件:顺序线性表L已存在。操作结果:销毁顺序线性表L */

Status clearList(SqList *L);
/* 初始条件:顺序线性表L已存在。操作结果:将L重置为空表 */

Status listEmpty(SqList *L);
/* 初始条件:顺序线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE */

int    listLength(SqList *L);
/* 初始条件:顺序线性表L已存在。操作结果:返回L中数据元素个数 */

Status getElem(SqList L,int i,ElemType *e);
/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
/* 操作结果:用e返回L中第i个数据元素的值 */

int locateElem(SqList L,ElemType e,Status(*compare)(ElemType,ElemType));
/* 初始条件:顺序线性表L已存在,compare()是数据元素判定函数(满足为1,否则为0) */
/* 操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。 */

Status priorElem(SqList L,ElemType cur_e,ElemType *pre_e);
/* 初始条件:顺序线性表L已存在 */
/* 操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱, */


Status nextElem(SqList L,ElemType cur_e,ElemType *next_e);
/* 初始条件:顺序线性表L已存在 */
/* 操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继, */

Status listInsert(SqList *L,int i,ElemType e);
/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1 */
/* 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1 */

Status listDelete(SqList *L,int i,ElemType *e);
/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
/* 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1 */

Status listTraverse(SqList L,void(*vi)(ElemType*));
/* 初始条件:顺序线性表L已存在 */
/* 操作结果:依次对L的每个数据元素调用函数vi()。一旦vi()失败,则操作失败 */

 

数据结构-线性表

标签:

原文地址:http://www.cnblogs.com/gaoxing/p/4302415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!