📄 subject_26565.htm
字号:
<p>
序号:26565 发表者:周晖 发表日期:2003-01-02 16:59:42
<br>主题:请问链表的一个问题
<br>内容:我用链表时有这样一个问题:<BR> struct link{link*pNext}pLink;<BR><BR>访问是pLink=pLink->pNext时,出错说不能访问,不知是何原因,请大高手指点
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:bb 回复日期:2003-01-02 17:07:10
<br>内容:1。链表指针到底了,又调用了一次。<BR><BR>即<BR>上一次调用后pLink=NULL;<BR>这时再调pLink=pLink->pNext;出错。<BR><BR>2。链表指针乱了。<BR>在操作链表的过程中某个pNext指到了非访问区<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:巴巴罗沙 回复日期:2003-01-03 12:48:06
<br>内容:多注意检查,写程序时静态检查同样重要。不要老在Debugger中转来转去,不明白画张图分析一下,仔细一点就行了<个人意见,仅供参考>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天成 回复日期:2003-01-05 16:15:43
<br>内容:struct link{link*pNext}pLink;<BR>定义了一个结构变量pLink,不是结构指针!<BR>不能用pLink->pNext<BR>只有当struct link *pLink的时候用才可以!!!!<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:沐秋 回复日期:2003-01-05 23:21:17
<br>内容:链表的每一个节点至少应该由两部分组成吧,1、节点要存储的数据,2、指向其他节点的指针。如果只有其中一个元素,如只有指针而没有存储的数据,那就不是链表了,似乎也没什么实际应用意义了。不知道我这么理解对不对。周晖的问题就在这个地方,我觉得你是不是链表的定义出了问题。我介绍一种单链表定义模式如下:<BR>struct Node<BR>{<BR> //存储的数据定义<BR> DataType xxxxx;//DataType代表实际的数据类型,xxxxx代表定义的变量名<BR> ……<BR> //指向其他的指针<BR> Node *next//指向下一节点的指针<BR>};<BR>定义节点时<BR>Node *head;//头节点定义<BR>Node p;//p为一个节点<BR>以下是我帮人家修改的一段关于链表的例子,表达上不是很简介,但是可能会对你有所帮助<BR>#include<iostream.h><BR>struct node<BR>{<BR> int elem;<BR> struct node *next;<BR>};<BR><BR>void main()<BR>{<BR> node *head=NULL;<BR> node *tail=NULL;<BR> node*pNEW;<BR> int k;<BR> //录入链表<BR> cout<<"please input integers to build the link 0 TO END" <<endl;<BR> while(1)<BR> {<BR> cin>>k; <BR> if (k==0)<BR> break;<BR> //int elem;<BR> pNEW=new node;<BR> pNEW->elem=k;<BR> pNEW->next=NULL;<BR> if (tail==NULL)<BR> {<BR> head=pNEW;<BR> }<BR> else<BR> tail->next=pNEW;<BR> tail=pNEW;<BR> }<BR><BR> //输出链表<BR> node*pNode=head;<BR> cout<<"link elements:"<<endl;<BR> <BR> while (pNode!=NULL)<BR> {<BR> cout<<pNode->elem<<endl;<BR> pNode=pNode->next;<BR> }<BR><BR> //删除链表<BR> while (head!=NULL)<BR> {<BR> pNode=head;<BR> head=head->next;<BR> delete pNode;<BR> }<BR>}<BR><BR>2003-1-5 23:52:57
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -