如何判断链表结束

playStudy 2010-08-04 08:47:16
有一个结构体

struct column
{
LPSTR psztext;
int ui;
column *next;
};

创建结构体的链表
column *head;//头指针
column *ls;//节点指针
column *le;//链尾指针


head=NULL;
for (int i=0;i<nindex;i++)
{
ls=new column;
ls->psztext=(LPSTR)(LPCSTR)strListText[i];
ls->ui=atoi(LPCTSTR(strListUI[i]));
ls->next=NULL;

if(head==NULL)
{
head=ls;
}
else
{
le->next=ls;
}
le=ls;

}


le->next=NULL;
delete ls;

遍历结构体指针的时候到达结尾处

结构体的指针的 value 是 0xfeeefeee 而不是null判断不了指针结尾
void CListDialog::InitDialogList(column* pColumn)
{
int i=0;
while(pColumn)//以内存指向为null为条件循环显示先前输入的内容
{
//do sth
}
}



...全文
568 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjl110 2010-08-05
  • 打赏
  • 举报
回复
bool 判断链表结束(链表 头)
{
链表 临时指针 = 头;
if(临时指针 == NULL)
{
链表为空
}
else
{
while(临时指针 -> next != NULL)
{
临时指针 = 临时指针 -> next;
}
//执行到临时指针指向的就是结束处
}
}
playStudy 2010-08-05
  • 打赏
  • 举报
回复
谢谢大家
玉古云投 2010-08-04
  • 打赏
  • 举报
回复
单向链表不需要链尾指针,只需

column *head = NULL;//头指针
column *ls;//节点指针

即可

ls->next = head;
head = ls;

这样,最后一个节点的next指针就指向了NULL
bulijun1987 2010-08-04
  • 打赏
  • 举报
回复
我看了一下:我觉得下面的代码:
delete ls;

有问题,它吧最后一个节点给删除了。
把这行语句去掉。

(2)另外。le->next=NULL;最后这条语句也是没有必要的。
bulijun1987 2010-08-04
  • 打赏
  • 举报
回复
我看了一下:我觉得下面的代码:
delete ls;

有问题,它吧最后一个节点给删除了。
把这行语句去掉。

(2)另外。le->next=NULL;最后这条语句也是没有必要的。
playStudy 2010-08-04
  • 打赏
  • 举报
回复
谢谢大家

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧