一个c语言数据结构的问题

我先不说什么,先看下面的代码:
cpp 代码
  1. void delete_pos_sequence_list(sequence_list *slt,int position)   
  2. {   
  3.   int i;   
  4.   if(slt->size==0)   
  5.   {   
  6.          printf("\n顺序表是空的!");   
  7.          exit(1);   
  8.   }   
  9.   if(position<0 | | position>=slt->size)   
  10.   {   
  11.         printfI("\n指定的删除位置不存在!");   
  12.         exit(1);   
  13.    }   
  14.   for(i=position;i< slt- >size-1;i--)   
  15.   {   
  16.      slt->a[i]=slt->a[i+1];   
  17.   }   
  18.   slt->size--;   
  19. }  

这是我从书上看到的一个数据结构的代码,主要是实现删除顺序表中的第position位置的节点。我看了很久总觉得这个代码有点问题,就是在第14行for语句中,那个i--应该是i++吧,要是i总减永远也比slt->size小啊。那么循环就一直下去,不会出来了啊。

请高手给小弟指明下,是不是有问题,还是我理解错误。谢谢了。

我看了下,有的地方显示有问题:第9行应该是:if (position<0 || position >=slt->size)  晕,在编辑里是正确的,显示出来是错的。主要是说的position必须不小与0或者不大于等于slt->size。

第14行看不到,应该是:for(i=position;i< slt- >size-1;i--)   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值