首页上一页 1 下一页尾页 2 条记录 1/1页
节点初始化尾节点变量后,后面节点是怎么获取与插入新节点
发表在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]
//
//
#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]