节点初始化尾节点变量后,后面节点是怎么获取与插入新节点
发表在C语言图书答疑 2016-10-30
是否精华
版块置顶:
[code=c]//每个节点创建时都把自己的指针指向NULL,然后创建链表时,MoveTrail函数会获取每个节点的指针变量值,Tmp=pTmp->m_pNext,但是Tmp到底是获取NULL值,还是指针变量本身的地址,若是NULL那肯定不行,若是获取指针变量本身的地址,表达式中也没有取地址运算符&啊,看的蒙了,求帮帮忙
//
//
#include<stdio.h>
#include<string.h>
class CNode
{
public:
CNode *m_pNext;
int m_Data;
CNode()
{
m_pNext=NULL;
}
};
class CList
{
private:
CNode *m_pHeader;
int m_NodeSum;
public:
CList()
{
m_pHeader=NULL;
m_NodeSum=0;
}
CNode *MoveTrail()
{
CNode *pTmp=m_pHeader; //获取头节点的首地址
for(int i=1;i<m_NodeSum;i++)
{
pTmp=pTmp->m_pNext;
}
return pTmp;
}
void AddNode(CNode *pNode)
{
if(m_NodeSum==0)
{
m_pHeader=pNode;
}
else
{
CNode *pTrail=MoveTrail();
pTrail->m_pNext=pNode;
}
m_NodeSum++;
}
};

int main(int argc,char *argv[])
{
CList list;
for(int i=0;i<5;i++)
{
CNode *pNode=new CNode();
pNode->m_Data=i;
list.AddNode(pNode);//这里传递每次申请的节点首地址到链表对象
}
return 0;
}[/code]
分享到:
精彩评论 2
again
学分:250 LV4
2016-10-31
沙发
都把自己的指针指向NULL =>  都找 m_pNext 指向NULL

取的是指针本身的值, 这个值是一个地址, “暂时”指向 NULL 当给这个指针变量赋值以后,指向的是新的节点。
ycyu1455
学分:11 LV2
2016-10-31
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
都把自己的指针指向NULL =>  都找 m_pNext 指向NULL

取的是指针本身的值, 这个值是一个地址, “暂时”指向 NULL 当给这个指针变量赋值以后,指向的是新的节点。
[/FIELDSET]

回复:
是我看错了,创建第二个节点时, CNode *MoveTrail()这个函数中也不会进入循环,我以为会进入循环获取NUL值,这一步看错了,导致后面看蒙了
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照