| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:关于数据结构的删除。有点懵懂。。
只看楼主 加入收藏
Cai_xw1993
Rank: 2
等 级:论坛游民
威 望:1
帖 子:55
专家分:30
注 册:2011-9-5
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:5 
关于数据结构的删除。有点懵懂。。
书上是这样写的
程序代码:
void delete_sqlist(sqlist L, int i);
    /*删除顺序表L中第i个位置上的结点*/
{
 if ((i<1)||(i>L.last)) error ('非法位置');
 for (j=i+1;j=L.last;j++)
     L.data[j-2]=L.data[j-1];
L.last = L.last-1
}

里面的L.data[j-2]=L.data[j-1];
不是应该是 L.data[j-1]=L.data[j];的吗?
2014-05-26 21:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
你把這段代碼的行爲手動模擬出來,反覆觀察,自然明白是怎麽回事。

授人以渔,不授人以鱼。
2014-05-26 21:50
Cai_xw1993
Rank: 2
等 级:论坛游民
威 望:1
帖 子:55
专家分:30
注 册:2011-9-5
收藏
得分:0 
回复 2 楼 TonyDeng
明白了,原来我一直忽略了数组的下标是从0开始算起的,多谢指教~
2014-05-26 22:15
Cai_xw1993
Rank: 2
等 级:论坛游民
威 望:1
帖 子:55
专家分:30
注 册:2011-9-5
收藏
得分:0 
回复 楼主 Cai_xw1993
aaggg

[ 本帖最后由 Cai_xw1993 于 2014-6-1 21:12 编辑 ]
2014-05-31 08:59
Cai_xw1993
Rank: 2
等 级:论坛游民
威 望:1
帖 子:55
专家分:30
注 册:2011-9-5
收藏
得分:0 
回复 2 楼 TonyDeng
你好~这个地方
if ((i<1)||(i>L.last)) error ('非法位置');
怎么我感觉应该是要
if ((i<1)||(i>L.last+1)) error ('非法位置');
这样才对
2014-06-01 21:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
要看對Last的定義,是表中最後一個元素,還是最後一個元素的下一個。根據你1樓的代碼看,它應是最後一個元素。

btw: 1樓代碼中的for()循環結束條件寫錯了,那不是邏輯判斷,而是賦值。

授人以渔,不授人以鱼。
2014-06-02 11:05
快速回复:关于数据结构的删除。有点懵懂。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016495 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved