2寻找元素x的位置。 tamplate〈class T> int SqList<T>:Locate(const T&x)const /返回表中元素x的位置 int i =0; while (i<=last &dada[i]!=x)i++; if (i>last)return-1; /查找失败 else return i; /查找成功}
2 寻找元素 x 的位置。 tamplate < class T > int SqList<T>:: Locate(const T& x)const //返回表中元素 x 的位置 { int i = 0; while (i<= last && dada[i]!= x) i++; if (i> last) return –1; // 查找失败 else return i; // 查找成功 }
3插入元素 tamplate class T int SqList<T>:Insert(int k,const T&x); /在表的位置k处插入元素x if(k<0k>last+1)last==MaxSize-1) return 0; else last ++ for (int j=last;j>k;j-) data[j]=data[j-1]; data[k]x;return 1; }}
3 插入元素 tamplate < class T > int SqList<T>:: Insert(int k,const T& x); //在表的位置 k 处插入元素 x { if ( k < 0 || k > last +1) || last = = MaxSize-1) return 0; else { last ++ ; for (int j=last;j> k;j--) data[j] = data[j-1]; data[k] = x; return 1; } }
4删除元素 tamplate class T int SqList<T>:Delete(int k,const T&x); /从表中删除位置k处的元素x if(k<0k>last)return 0; last--; for (int j=k;j<=last;j++) data[j]data[j+1]; return 1;
4 删除元素 tamplate < class T > int SqList<T>:: Delete(int k,const T& x); //从表中删除位置 k 处的元素 x { if ( k < 0 || k > last ) return 0; last -- ; for (int j=k;j<= last;j++) data[j] = data[j+1]; return 1; }
·结论: 线性表的顺序存储结构简单、易于实现,可 以随机访问表中任一元素,存储密度高。 插入、删除麻烦,需移动大约一半的元素。 插入一个元素平均移动n/2的元素; 删除平均移动(n-1)/2的元素;
● 结论: 线性表的顺序存储结构简单、易于实现,可 以随机访问表中任一元素,存储密度高。 插入、删除麻烦,需移动大约一半的元素。 插入一个元素平均移动 n/2的元素; 删除平均移动 (n-1)/2 的元素;
3.3 线性表的链式表示和实现 单链表 3.3.1单链表 动态链表 单链表 静态链表 1、单链表的定义 。链式存储:用一组任意存储单元存储线性 表的数据元素
3.3 线性表的链式表示和实现 ————单链表 3.3.1 单链表 1、单链表的定义 ● 链式存储:用一组任意存储单元存储线性 表的数据元素。 单链表 动态链表 静态链表