| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:C++链表插入有一点不明白,想请教.. ...
只看楼主 加入收藏
阿宽
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
C++链表插入有一点不明白,想请教.. ...
template<class datatype>
bool LIST <datatype> ::insert_data(datatype data,int i)
{
NODE <datatype> *current,* previous, * newnode;
int j=1;
if((i>length()+1)||(i<0));
{
    cout<<"插入不正确!";
        return false;
}
newnode=new NODE<datatype>;
if(newnode==NULL)
{
cout<<"内存无空间!";
riturn false;
}
newnode->data=data;//元素放入数据域.. ...第1句
newnode->next=NULL; //NULL放入指针域.. ...第2句
if(i==1)
{
newnode->next=head;  //这里不怎么懂.... ..第3句
head=newnode;        //....... ..... .....第4句
return true;         //这里返回的是什么...第5句
}
current=previous=head;
while(current!=NULL&&j<i)
{
previous=current;
current=current->next;
j++;
};
newnode->next=current;  //这句和 下一句 是什么意思?当i=1或者3时它的作用是?.. ...最后两句
previous->next=newnode;
return true;
}
.. ........ ...先谢谢大家的回答了!我还没分数,可以以后加吗?......... ..........


搜索更多相关主题的帖子: 链表 
2010-07-06 23:51
liuqisheng
Rank: 2
来 自:佛山
等 级:论坛游民
帖 子:1
专家分:10
注 册:2010-7-11
收藏
得分:10 
newnode->next=current; previous->next=newnode这两句分别是newnode所在的位置指向current;previous的位置指向newnode
2010-07-11 15:35
gq198718
Rank: 4
等 级:业余侠客
威 望:1
帖 子:86
专家分:200
注 册:2010-6-6
收藏
得分:10 
if(i==1)//i=1就是把插入节点位置是第一个节点时
{
newnode->next=head;  //把原来头结点位置给新节点.... ..第3句
head=newnode;        //新节点位置就变成了头结点 .....第4句
return true;         //表示插入成功...第5句
}
while(current!=NULL&&j<i)//当插入位置不是第一个节点,这里用一个循环 当循环跳出时  其操作与上面if语句类似
{
previous=current;
current=current->next;
j++;
};
newnode->next=current;  //跳出循环 与3、4功能类似的...最后两句
previous->next=newnode;
不知道我说明白么?
2010-07-12 11:36
快速回复:C++链表插入有一点不明白,想请教.. ...
数据加载中...
 
   



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

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