线性表--顺序表


一、什么是线性表

线性表是具有相同数据类型的n个数据元素的有限序列

即每个元素类型所占的空间大小相同。有次序的有限序列。

如:线性表L

L=(a₁,a₂,a₃....,ai,ai+1..,an)

除第一个元素外,每个元素有且只有一个直接前驱,除最后一个元素外,每个元素有且只有一个直接后继。a₁为a₂的直接前驱,a₃为a₂的直接后继。

二、顺序表

顺序表:

a₁
a₂
a₃
...
an

 

线性表的存储顺序又称顺序表。它是一组地址连续的存储单元依次存储在线性表中的数据元素。

线性表的顺序存储结构是一种随机存取的存储结构。

//线性表的描述
#define
MaxSize 50 //定义线性表的最大长度 typedef struct{ Elemtype data[MaxSize]; //顺序表的元素 int length; //顺序表的当前长度 }SqList; // 顺序表的类型定义

对线性表的操作

1.插入操作:在第i(1<i<L.length)个位置插入新元素e

算法思想:

·判断在范围i内是否有效

·判断空间存储是否还有位置

·第i个元素及以后元素向后移

·在位置i处放入e

·表长+1

(线性表的位序从1开始,数组元素的下标从0开始)

2.删除元素

 

 

 3.查找元素

 

 

 

 

 

 

 

 

 

 

bool  ListInsert( SqList & L, int i, ElemType e){
     if( i< 1|| i<length+ 1)    //判断i的范围是否有效
     return  false;
   e= L.data[i- 1];    //将删除的元素赋值给e
    for( int j=i; j< L.length;j++)    //将i元素及向后移
    L.data[j- 1]= L.data[j];
    L.length--;
    return ture;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM