class Node
{
public string name;
public Node next;
}
class Program
{
static void Main(string[] args)
{
Node head,pre;
string str;
int lSize;
initLinkList(out head);
//初始化一个头结点
Console.WriteLine("请输入链表的节点数量:");
try{
lSize = int.Parse(Console.ReadLine());
creatLinkList(head, lSize);
}
catch
{
Console.WriteLine("输入了非法值!");
return;
}
Console.WriteLine("打印节点的值?(Y/N)");
str = Console.ReadLine();
if (str=="y" || str=="Y")
{
printNode(head);
}
}
static void initLinkList(out Node head)
{//初始化链表(初始化头节点)
head = new Node();
}
static void addNode(ref Node pNode)
{//追加节点
pNode.next = new Node();
}
static void creatLinkList(Node head, int linkSize)
{//创建链表
Node pre;
pre = head;
for (int i = 0; i <linkSize; i++)
{
Console.WriteLine("请输入节点的值:");
pre.name = Console.ReadLine();
addNode(ref pre);
pre = pre.next;
}
}
static void printNode(Node head)//打印各个节点
{
Console.WriteLine("链表各节点值如下:");
for (; head!= null; head = head.next)
{
Console.WriteLine("\n{0}",head.name);
}
}
}
下一贴给出插入节点和删除节点,我想这里关键有这个知识点需要知道:
1.类声明中可以包括自己的引用,但结构体不能,类是引用类型,结构体是值类型
2.引用实际上就是指针,一个名为“next”的引用实际上就是指向一个类的指针
3.new操作符可以为一个类的引用创建实例
4.out和ref的作用,传一个变量的地址
5.一个单链表的基本要素(头节点,操作函数:初始化,创建,打印,删除...) |