【在线等】这段简单的C#程序哪里错了?

gg882 2009-04-04 12:25:11
用头插法插入结点,最后输出,没有显示错误,但是结果输出的不正确,高手帮看看!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace 支援
{
class TeacherList
{
public TeacherNode HeadNode;//头节点
public TeacherList(string Path)//从文件构造
{
HeadNode = new TeacherNode();
StreamReader sr = new StreamReader(Path,System.Text.Encoding.Default);
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
TeacherNode node = new TeacherNode(line);
InsFirst(node);
}
sr.Close();
}

public void InsFirst(TeacherNode node)
{
node.NextNode = HeadNode.NextNode;
HeadNode.NextNode = node;
}
public void Display()
{
TeacherNode node = HeadNode.NextNode;
while (node != null)
{
node.Display();
node = node.NextNode;
}
}

}

}
...全文
156 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
heruoyong 2009-04-05
  • 打赏
  • 举报
回复
public void InsFirst(TeacherNode node)
{
node.NextNode = HeadNode.NextNode;
HeadNode.NextNode = node;
}

node这里的node如果是null就会出错
TeacherNode node = new TeacherNode(line);
InsFirst(node); 这里没有判断node是不是为空
十八道胡同 2009-04-05
  • 打赏
  • 举报
回复
太晚了,不想写了,lz好好检查下各个指针吧,
li45214521 2009-04-05
  • 打赏
  • 举报
回复
public class SimpleList<T>
{
private Node Header;

public void InsertHeader(T t)
{
Node insert = new Node();
insert.Data = t;
if (Header == null)
{
insert = Header;
}
else
{
insert.Next = Header;
Header = insert;
}
}

private class Node
{
public Node Next = null;
public T Data;
}
}
li45214521 2009-04-05
  • 打赏
  • 举报
回复

public void InsFirst(TeacherNode node)
{
node.NextNode = HeadNode.NextNode;
HeadNode.NextNode = node;
}

不对吧,

public void InsFirst(TeacherNode node)
{
node.NextNode = HeadNode;
HeadNode = node;
}
yangqidong 2009-04-04
  • 打赏
  • 举报
回复
没看出什么错,能说明一下运行结果是什么样的错误吗
gg882 2009-04-04
  • 打赏
  • 举报
回复
TeacherNode 我已经贴出来了 呵呵
gg882 2009-04-04
  • 打赏
  • 举报
回复
TeacherNode 我已经贴出来了 呵呵
heruoyong 2009-04-04
  • 打赏
  • 举报
回复
有可能是null的问题,Node.next为空,然后再使用该对象就出问题了
最好贴出来TeacherNode看看
gg882 2009-04-04
  • 打赏
  • 举报
回复

这个是TeacherNode
TeacherNode是正确的


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 支援
{
class TeacherNode
{
public TeacherRecord Record;
public TeacherNode NextNode;
public TeacherNode()
{
Record = null;
NextNode = null;
}
public TeacherNode(string line)
{
Record = new TeacherRecord(line);
NextNode = null;
}
public void Display()
{
if (Record != null)
{
Record.Display();
}
}
}
}
gg882 2009-04-04
  • 打赏
  • 举报
回复
好啊!你的QQ是多少?
yangqidong 2009-04-04
  • 打赏
  • 举报
回复
TeacherNode也贴出来看看
l527391549 2009-04-04
  • 打赏
  • 举报
回复
把Linq发出来看下

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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