数据结构——线性表的删除

来源:互联网 发布:航天金穗软件 编辑:程序博客网 时间:2024/05/20 06:29
#include <iostream>using namespace std;#define ERROR 0#define OK 0#define MAXSIZE 100typedef int Status;typedef int elemtype;typedef struct{int length;elemtype elem[MAXSIZE];}SqList;Status IntiList(SqList &L,int k)//创建线性表 {   int i;    cout<<"输入线性表的元素:"; for(i=0;i<k;i++){cin>>L.elem[i];}L.length=k;return OK;}Status Listdelete(SqList &L,int i,elemtype e)//在顺序表中删除第i个元素,//并用e返回{   int j;if((i<1)||(i>L.length))  return ERROR;//i值不合法 e=L.elem[i-1];//将欲删除的元素保留在e中 for(j=i;j<=L.length-1;j++)   L.elem[j-1]=L.elem[j];//被删除元素之后的元素前移 L.length--;//表长减1 return OK; }int main(){   int i,n,n1;    elemtype e;SqList la;cout<<"当前线性表长度为:";cin>>n;IntiList(la,n);cout<<"删除的位置为:";cin>>i;if(Listdelete(la,i,e))cout<<"无法删除"<<endl;else{cout<<"删除后线性表为:";for(i=0;i<la.length;i++)cout<<la.elem[i]<<" ";cout<<endl;cout<<"删除后线性表长度为:"<<la.length<<endl; } }  

0 0