2024年4月11日发(作者:)
顺序表
1、什么是顺序存储结构?什么是顺序表?
答:用一组地址连续的存储空间依次存放线性表的各元素 。
采用顺序存储结构的线性表称为顺序表(一维数组) 。
2、顺序表的语言描述,一定要理解其中的含义。
(1)静态语言描述
typedef struct node
{ EelemType data[maxsize];
int length;
}sqlist;
sqlist l;
(2)动态语言描述
typedef struct node
{ EelemType *elem;
int length;
}sqlist;
sqlist l;
=(ElemType*)malloc(Maxsize*sizeof(ElemType))
3、顺序表的插入、思想、时间复杂度o(n)、理解算法中每条语句的
含义。
(1)插入的条件:不管是静态实现还是动态实现,插入的过程都
是从最后一个元素往后挪动,腾位置。静态是利用数组实现,动态是
1
利用指针实现。不管静态还是动态,在表中第i个位置插入,移动次
数都是n-i+1。
(2)静态实现插入算法(位置是1-length+1合法)
void InsertList(SeqList *L,DataType x,int i)
{
int j;
if(i<1||i>L->length+1)
Error("position error"); //非法位置,退出
if(L->length>=ListSize)
Error("overflow"); //表空间溢出
for(j=L->length-1;j>=i-1;j--)
L->data[j+1]=L->data[j]; //从最后一个结点开始往后移
L->data[i-1]=x; //插入x
L->length++; //表长加1
}
(3)动态实现插入算法(位置是1-length+1合法)
status Listinsert_sq(sqlist &L,int i,elemtype e)
{if(i<1||i>+1) return error;
if(>=ze)
{newbase=(elemtype* )
realloc(,(ze+LISTINCREMENT)*sizeof(elemtype)
);
2
发布者:admin,转转请注明出处:http://www.yc00.com/news/1712847903a2133827.html
评论列表(0条)