您的位置:首页 > 其它

第三周项目(4) - 顺序表应用

2017-09-20 19:54 176 查看
/*
*Copyright(c) 2017,YTU CS
*All right reserved.
*作    者:王铭泽.
*完成日期:2017,9,10.
*版 本 号: v1.0
*
*问题描述: 删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
*输    入: 无
*输    出: 输出删除结果。
*/

#include <iostream>
#include "shunxuList.h"//对头文件的声明,头文件里包含有函数的声明。

using namespace std;

void D(SqList *&L,int x,int y,SqList *&L1)//删除线性表从x位置到y位置的元素。
{
InitList(L1);  //初始化新表。
int f=0,w=0;   //w存放新长度。
ElemType e;
//逻辑位置与物理位置的转换
x--;
y--;
//容错判断
if(x>y || y>L->length || x<1)
{
cout<<" data x or y error"<<endl;

}

for(f;f<L->length;f++)
{
if(f<x || f>y  )
{
L1->data[w++]=L->data[f];
}

}
L1->length=w;
}
int main()
{
//建立A表
SqList *L1,*L2;
ElemType a[6]={1,3,5,7,9,10};
CreatList(L1,a,6);
cout<<"线性表L1的内容为:"<<" ";

D(L1,2,3,L2);

DispList(L2);
cout<<endl;
return 0;
}


本问题是顺序表的应用 ,其实质与项目三无大区别,都是利用顺序表算法库解决实际问题。

运行结果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: