郑州网站开发,主机网站建设制作,手机网站管理工具,公司网站放哪些内容线性表分为 顺序存储结构 和 链式存储结构
线性表的顺序存储结构#xff1a; 线性表的顺序存储结构#xff0c;指的是用一段地址连续的存储单元依次存储线性表的数据元素。 1#xff0c;顺序表的结构#xff1a; #define MAXSIZE 20 typedef int El…线性表分为 顺序存储结构 和 链式存储结构
线性表的顺序存储结构 线性表的顺序存储结构指的是用一段地址连续的存储单元依次存储线性表的数据元素。 1顺序表的结构 #define MAXSIZE 20 typedef int ElemType; typedef struct { ElemType data[MAXSIZE]; //数组 int length; //顺序表长度 }Sqlist; 顺序表的第 i 个元素的下标为 i1
2顺序表的插入与删除 //插入数据 void Insertion(QList list, int pos, int data) { //pos不是下标从1开始 if ((pos list.length) || (pos MAX_SIZE)) { return; } int posidx pos - 1; //位置所对应的下标 int maxidx list.length - 1; for (int i maxidx; i posidx; i--) { list.data[i 1] list.data[i]; if (i posidx) { list.data[i] data; } } list.length; } //删除数据 void RemovePos(QList list, int pos) { //pos不是下标从1开始 if ((pos list.length) || (pos MAX_SIZE)) { return; } int idxpos pos - 1; int idxlen list.length - 1; for (int i idxpos; i idxlen; i) { list.data[i] list.data[i 1]; } list.data[idxlen] 0; list.length--; } 3顺序表的优点和缺点 时间复杂度为O(1) 它比较适合元素个数不太变化而更多是存取数据的应用。 优点无需为表示表中元素之间的逻辑关系而增加额外的存储空间 可以快速地存取表中任一位置的元素 缺点插入和删除操作需要移动大量元素 长度变化大难以确定存储空间的容量