线性表的顺序存储.docVIP

  • 5
  • 0
  • 约 5页
  • 2017-01-12 发布于江苏
  • 举报
线性表的顺序存储

顺序存储定义 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 线性表的一些常用操作 1 创建线性表 2 ?销毁线性表 3 清空线性表 4 ?将元素插入线性表 5 ?将元素从线性表中删除 6 获取线性表中某个位置的元素 7 ?获取线性表的长度 用如下一个柔性数组来实现顺序存储结构 [cpp]? span?style=font-size:18pxtypedef?struct?tag_seqlist?? {?? ???int?capicity;?//最大容量?? ???int?length;?//目前该线性表的长度?? ???Tseqlistnod*?node;?//线性表存储数据?? }?Tseqlist;/span?? 1 创建线性表 [cpp]? span?style=font-size:18pxSeqList*?SeqList_Create(int?capacity)?? {?? Tseqlist*?ret?=?NULL;?? if?(capacity?=?0)?? {?? ret?=?(Tseqlist*)?malloc(sizeof(Tseqlist)?+?sizeof(Tseqlistnod)?*?capacity);?//为柔性数组分配内存空间?? }/span?? ? ? ? //如果分配成功则建立一个线性表 i [cpp]? span?style=font-size:18pxf?(ret?!=?NULL)?? {?? ret-capicity?=?capacity?;?? ret-length?=?0;?? ret-node?=?(Tseqlistnod*)(ret?+?1);?? }?? return?ret;?? }/span?? 2 ?销毁线性表 销毁线性表需要释放分配的内存 [cpp]? void?SeqList_Destroy(SeqList*?list)?? {?? free(list)?;?? list?=?NULL?;?? }?? 3 清空线性表 //在这里,只是把线性表的实际长度变为了0,但是没有对已经存储的数据进行清除 [cpp]? void?SeqList_Clear(SeqList*?list)?? {?? ???????//创建一个新的线性表指针指向要清除的线性表的第一个元素?? Tseqlist*?slist?=?(Tseqlist*)?list;?? if?(slist?!=?NULL)?? {?? slist-length?=?0;?? }?? ?? }?? 4获取线性表的长度 [cpp]? int?SeqList_Length(SeqList*?list)?? {?? Tseqlist*?slist?=?(Tseqlist*)?list;?? int?ret?=?-1;?? if?(slist?!=?NULL)?? {?? ret?=?slist-length;?? }?? return?ret;?? }?? 5获取线性表的容量?? [cpp]? int?SeqList_Capacity(SeqList*?list)?? {?? Tseqlist*?slist?=?(Tseqlist*)?list;?? int?ret?=?-1;?? if?(slist?!=?NULL)?? {?? ret?=?slist-capicity;?? }?? return?ret;?? ?? ?? ?? }?? 4 ?将元素插入线性表 插入元素算法  1 判断线性表是否合法  2 判断插入位置是否合法  3 把最后一个元素到插入位置的元素后移一个位置  4 将新元素插入  5 线性表长度加1 [cpp]? span?style=font-size:18pxint?SeqList_Insert(SeqList*?list,?SeqListNode*?node,?int?pos)?? {?? Tseqlist*?slist?=?(Tseqlist*)?list;?? int?ret?=?-1;?? int?i?=?0;?? ????????//判断线性表是否合法?? ret?=?(slist?!=?NULL)??(slist-capicity?=?slist-length?+?1)??(pos?=?0);?? ?????if?(ret)?? ?????{???????????? ????????????????//判断插入位置是否合法?? if?(pos?=?slist-length)?? {?? pos?=?slist-length;?? }?? for?(?i?=?slist-length;?i??pos;

文档评论(0)

1亿VIP精品文档

相关文档