论坛: 编程破解 标题: C的问题!关于删除! 复制本贴地址    
作者: top [top]    论坛用户   登录
有个程序要求在线性表删除相同节点,若有相同的就删除其后面一个节点!

题是这样的:一线性表,长度为20,节点依次递增,要编程解决如下问题:
若有相同节点则删除其后一节点

我们用的是
if(a[i]==a[i+1])
    a[i]=a[i+1]

但是删后的节点不知道怎么办,
比如是5个数 1,3,3,4,4,5
结果是1,3,4,5,5,5应该是1,3,4,5才对啊!它自己补了两位,怎么办呢?


[此贴被 偃月狂刀(top) 在 5月20日21时5分 编辑过]

地主 发表时间: 5/20 21:45

回复: dizi0774 [dizi0774]   论坛用户   登录
用指针呀,指针指向下一节点,若相同,则将指针指向下一节点的下一节点.以此类推.
若用数组的话,就你上面的例子改一下:
    a[5]=0; /*这里设0为数组结束标志,你也可设为其它的东东.*/
    for(i=0;a[i]!=0;i++)
       for(j=i+1;a[j]!=0;j++)
           {if(a[i]==a[j])
                 { for(tepm=j;a[temp]!=0;temp++)
                      a[temp]=a[temp+1];   
                      a[--temp]=0;  
                  } 
              if(a[i]==a[j])j--;   
             }
另外:本程序没有经过调试,仅供参考.                    




B1层 发表时间: 05/20 22:34

回复: top [top]   论坛用户   登录
解决不了删除后的随机数!哎``

B2层 发表时间: 05/23 00:35

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号