回 帖 发 新 帖 刷新版面

主题:关于一个插表的问题

int Insert_seqlist(Seqlist *L,int i,data x)

   int j;
   if(L->last==Maxsize-1)
     {printf("满表");return(-1);}/*表满不能插入
   if(i<1||i>L->last+2)/*检查插入的位置
   {printf("位置错");return(0);}
  for(j=L->last;j>=i-1;j--)
   L->data[j+1]=L->data[j];/*接点移动
   L->data[i-1]=x;/*新元素插入
   L->last++;/*last指向最后元素
   return(1);
}

现在有表如下
序号 内容               现要求在C前面插入一个M
0     A                 这时for(j=L->last;j>=i-1;j--)
1     B                 i是取C的序号(即2)还是取C在表中的位数(即3位)
2     C
3     D
4     E

我尝试过2种但都不行,所以请教一下大家!谢谢!

回复列表 (共1个回复)

沙发

这个有问题吗?
i表示什么,不是你要求用户输入的吗。假如你规定用户输入3是在第三个位置插入,那就用(j=L->last;j>=i-1;j--)来移动后面的元素,

我来回复

您尚未登录,请登录后再回复。点此登录或注册