如何创建一个链表多个节点再通过遍历节点 [英] How to create multiple nodes in a linked list then iterate through the nodes

查看:379
本文介绍了如何创建一个链表多个节点再通过遍历节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习如何在C#中的链表。我有下面的代码是不是为我工作。我只想补充节点在主为我在下面,然后遍历,将打印到控制台的所有节点。

 使用系统; 

类节点
{
公共对象数据;
下一公共节点;

公共节点()
{
数据= NULL;
下一= NULL;
}
公共节点(对象o)
{
数据= O;
下一= NULL;
}
公共节点(对象数据,在下一个节点)
{
this.data =数据;
this.next =下一个;
}
}

类LinkedList的
{
私人节点headNode;
私人节点tailNode;

INT node_count;

公共无效添加(对象条目)
{
如果(headNode == NULL)
{
节点newNode =新节点(项);
headNode = newNode;
++ node_count;
}
,否则
{
如果(node_count == 1)
{
节点newNode =新节点(入门,headNode);
tailNode = newNode;
}
,否则
{
节点newNode =新节点(入门,tailNode);
tailNode = newNode;
}
++ node_count;
}
}

公共无效returnData()
{
如果(headNode.next!= NULL)
{
而(headNode.next!= NULL)
{
Console.WriteLine(headNode.data +\\\
);
}
}
,否则
Console.WriteLine(不可用);
}
}

级运动
{
静态INT的Main()
{
LinkedList的LL =新的LinkedList() ;
ll.add(8);
ll.add(2);
ll.add(7);
ll.add(4);
ll.add(9);
ll.add(10);

ll.returnData();

到Console.ReadLine();
返回0;
}
}


解决方案

您代码是完全破碎。



下面就来运行它需要最小的变化

 使用系统; 

类节点
{
公共对象数据;
下一公共节点;

公共节点()
{
数据= NULL;
下一= NULL;
}
公共节点(对象o)
{
数据= O;
下一= NULL;
}
公共节点(对象数据,在下一个节点)
{
this.data =数据;
this.next =下一个;
}
}

类LinkedList的
{
私人节点headNode;
私人节点tailNode;

INT node_count;

公共无效添加(对象条目)
{
节点newNode =新节点(项);
如果(headNode == NULL)
headNode = newNode;
如果(tailNode!= NULL)
tailNode.next = newNode;
tailNode = newNode;
++ node_count;
}

公共无效returnData()
{
节点currentNode = headNode;

如果(currentNode == NULL)
Console.WriteLine(不可用);

,而(currentNode!= NULL){
Console.WriteLine(currentNode.data);
currentNode = currentNode.next;
}

}
}

级运动
{
静态INT的Main()
{
LinkedList的LL =新的LinkedList();
ll.add(8);
ll.add(2);
ll.add(7);
ll.add(4);
ll.add(9);
ll.add(10);

ll.returnData();

返回0;
}
}


I'm learning how to make a linked list in c#. I have the below code which is not working for me. I just want to add the nodes in the main as i have below then iterate over all nodes that will print to the console.

using System;

class node
{
    public object data;
    public node next;

    public node()
    {
        data = null;
        next = null;
    }
    public node(object o)
    {
        data = o;
        next = null;
    }
    public node(object data, node next)
    {
        this.data = data;
        this.next = next;
    }    
}

class linkedList
{
    private node headNode;
    private node tailNode;

    int node_count;

    public void add(object entry)
    {
        if (headNode == null)
        {
            node newNode = new node(entry);
            headNode = newNode;
            ++node_count;
        }
        else
        {
            if (node_count == 1)
            {
                node newNode = new node(entry, headNode);
                tailNode = newNode;                
            }
            else 
            {
                node newNode = new node(entry, tailNode);
                tailNode = newNode;
            }
            ++node_count;
        }
    }

    public void returnData()
    {
        if (headNode.next != null)
        {
            while (headNode.next != null)
            { 
                Console.WriteLine(headNode.data + "\n");
            }
        }
        else
            Console.WriteLine("Not Available");
    }
}

class Exercise
{
    static int Main()
    {
        linkedList ll = new linkedList();
        ll.add(8);
        ll.add(2);
        ll.add(7);
        ll.add(4);
        ll.add(9);
        ll.add(10);

        ll.returnData();

        Console.ReadLine();
        return 0;
    }
}

解决方案

Your code is completely broken.

Here's minimal changes needed to run it

using System;

class node
{
    public object data;
    public node next;

    public node()
    {
        data = null;
        next = null;
    }
    public node(object o)
    {
        data = o;
        next = null;
    }
    public node(object data, node next)
    {
        this.data = data;
        this.next = next;
    }    
}

class linkedList
{
    private node headNode;
    private node tailNode;

    int node_count;

    public void add(object entry)
    {
        node newNode = new node(entry);
        if (headNode == null)
            headNode = newNode;
        if (tailNode != null)
            tailNode.next = newNode;
        tailNode = newNode;
        ++node_count;
    }

    public void returnData()
    {
        node currentNode = headNode;

        if (currentNode == null)
            Console.WriteLine("Not Available");

        while (currentNode != null) {
            Console.WriteLine(currentNode.data);
            currentNode = currentNode.next;
        }

    }
}

class Exercise
{
    static int Main()
    {
        linkedList ll = new linkedList();
        ll.add(8);
        ll.add(2);
        ll.add(7);
        ll.add(4);
        ll.add(9);
        ll.add(10);

        ll.returnData();

        return 0;
    }
}

这篇关于如何创建一个链表多个节点再通过遍历节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆