请教关于C/C++中线性表(串)删除问题

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:29:46
在一个线性表中如何才能删除指定的串值?
假如有一个线性表定义如下
struct linklist
{
int data;
int length;
int maxlength
}*list;

list=(struct linklist *)malloc(maxlength*sizeof(struct linklist));
cin>>list[0....10];

现在我想删除list[5...8]
通过以下算法:
struct linklist *p,*q;
p=list[i]
q=list[j]
for(i=4,j=8;i<8-4;i++,j++)
{
*p[i]=*q[j];
}

现在如下线性表
1234567890

想删除的串如下:
5678

应该得到如下结果
123490
而按上述算法 则得到12349078
请问应该如何处理才能解决这个问题?

int main()
{
List = new Linklist[10];
int n=10;
for(int i=0; i<n; i++){
cin>>List[i].data;}
for(int i=4, j=8; i<8; i++, j++){
List[i] = List[j];n--;}

cout<<n<<endl;
for(int i=0; i<n; i++)
cout<<List[i].data<<" ";
delete[] List;
}

这种感觉?

for的循环条件无法进入