顺序表的实现
本题要求实现六个函数,顺序表为整型数据,可实现输入、输出、取值、查找、插入、删除功能。输入样例与输出样例对应情况见下图。

int GetElem(SqList L, int i, ElemType &e) // 顺序表的取值 { if(i<1||i>L.length)//i值不合理的情况 return 0;//不合理返回0 e=L.elem[i-1];//elem第[i-1]单元存储第i个元素 return 1; } int LocateElem_Sq(SqList L, double e) //顺序表的查找 { int i; for(i=0;i<L.length;i++)//for循环对于顺序表进行遍历 if(L.elem[i]==e) return i+1;//序号i+1 return 0; } int ListInsert_Sq(SqList &L, int i, ElemType e)//顺序表的插入 { int j; if(i<1||i>L.length)//i值不合法 {return 0;} if(L.length==MAXSIZE)//存储空间已满 { return 0;} for(j=L.length-1;j>=i-1;j--){ L.elem[j+1]=L.elem[j];//将插入位置及之后的元素后移 } L.elem[i-1]=e; ++L.length; return 1; } int ListDelete_Sq(SqList &L, int i)//顺序表的删除 //判断i值,不合法返回0;被删除元素之后的元素前移;表长减1;返回1 { int j; if(i<1||i>L.length)//i值不合法 return 0; for(j=i;j<L.length;j++){ L.elem[j-1]=L.elem[j];//被删除元素之后的元素前移 } --L.length; return 1; } void ListInput(SqList &L)//顺序表数据的输入 //输入顺序表长度;依次输入数据;表长赋值 { int n; cin>>n; for(int i=0;i<n;i++){ scanf("%d", &L.elem[i]); L.length++; } } void ListOutput(SqList L)//顺序表数据的输出 { int i; for (i = 0; i < L.length; i++) { cout << L.elem[i] << " "; } cout<<endl; }

浙公网安备 33010602011771号