java泛型链表,c# 自定义泛型链表类的详解

(1)自定义泛型链表类。

public class GenericList

{

private class Node

{

//当前节点值

private T data;

public T Data

{

get { return data; }

set { data = value; }

}

//节点的下一个节点

private Node next;

public Node Next

{

get { return next; }

set { next = value; }

}

//节点的上一个节点

private Node last;

public Node Last

{

get { return last; }

set { last = value; }

}

public Node(T t)

{

data = t;

next = null;

}

}

private Node firstNode;

private Node lastNode;

public void AddNode(T t)

{

Node node = new Node(t);

node.Last = lastNode;

if (lastNode != null)

lastNode.Next = node;

lastNode = node;

if (firstNode == null)

{

firstNode = node;

}

}

//要在自定义泛型集合上迭代

//必须实现该接口

public IEnumerator GetEnumerator()

{

Node current = firstNode;

while (current != null)

{

//yield return表达式以枚举对象返回

yield return current.Data;

current = current.Next;

}

}

}

(2)自定义泛型链表类调用。

class GenericListTestTwo

{

static void Main()

{

// 类型参数为int

GenericList list = new GenericList();

for (int a = 0; a < 5; a++)

{

list.AddNode(a);

}

foreach (int i in list)

{

System.Console.WriteLine(i);

}

//类型参数为string

GenericList strList = new GenericList();

strList.AddNode("First Node");

strList.AddNode("Second Node");

foreach(string s in strList)

{

System.Console.WriteLine(s);

}

Console.Read();

}

}

输出如下:

e4b3b193cb497b4ef53a9a3923d09f66.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值