c#——自定义泛型链表demo -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
c#——自定义泛型链表demo
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
已定义如下一个泛型类和泛型接口,请创建一个泛型的mylinkedlist类,表示一个单向链表,满足指定接口和功能。
1)泛型类,代表链表中的节点
public class node
{public t value { get; set; }public node next { get; set; }public node(t value){value = value;next = null;}
} 2)泛型接口,定义了列表上可执行的操作
public interface imylist
{void addtohead(t value);void addtotail(t value);int count { get; }bool contains(t value);
} 3)要求链表继承imylist,实现接口中定义的功能,并实现:一无参构造方法,一有参构造方法(支持任意数量参数),重写tostring方法(生成类似1--> 8--> 9--> 43--> 22-->的字符串)。
class mylinkedlist : imylist
{private node head;
} 4)最终,使用下述main方法进行测试。
public static void main()
{mylinkedlist lst = new mylinkedlist();console.writeline(lst.count);random rd = new random();for (int i = 0; i < 10; i ){lst.addtotail(rd.next(100));}lst.addtohead(100);lst.addtotail(100);console.writeline(lst);console.writeline(lst.count);console.writeline(lst.contains(100));mylinkedlist list = new mylinkedlist(1, 8, 9, 43, 22);console.writeline(list);
}
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;namespace homework5
{//1)泛型类,代表链表中的节点public class node{public t value { get; set; }public node next { get; set; }public node(t value){value = value;next = null;}}//2)泛型接口,定义了列表上可执行的操作public interface imylist{void addtohead(t value);void addtotail(t value);int count { get; }bool contains(t value);}//3)要求链表继承imylist,实现接口中定义的功能,并实现:一无参构造方法,一有参构造方法(支持任意数量参数),重写tostring方法(生成类似1--> 8--> 9--> 43--> 22-->的字符串)。class mylinkedlist : imylist{private node head;public mylinkedlist(){}public mylinkedlist(params t[] value) { foreach(t temp in value){addtotail(temp);}}public int count {get{int count = 0;if (head != null) {node temp = head;while (temp!= null){count ;temp = temp.next;}}return count;} }public void addtohead(t value){var newnode = new node(value);if (head == null){head = newnode;}else{newnode.next = head;head = newnode;}}public void addtotail(t value){var newnode = new node(value);if (head == null){head = newnode;}else{node temp = head;while (temp.next != null) {temp = temp.next;}temp.next = newnode;}}public bool contains(t value){if (head != null) {node temp = head;while (temp!= null){if (temp.value.equals(value)){return true;}temp = temp.next;}} return false;}public override string tostring(){string result = "";if (head != null){node temp = head;while (temp != null){result = temp.value;if (temp.next != null)result = ',';temp = temp.next;}}return result;}}class program{static void main(string[] args){mylinkedlist lst = new mylinkedlist();console.writeline(lst.count);random rd = new random();for (int i = 0; i < 10; i ){lst.addtotail(rd.next(100));}lst.addtohead(100);lst.addtotail(100);console.writeline(lst);console.writeline(lst.count);console.writeline(lst.contains(100));mylinkedlist list = new mylinkedlist(1, 8, 9, 43, 22);console.writeline(list);}}
}
总结
以上是尊龙游戏旗舰厅官网为你收集整理的c#——自定义泛型链表demo的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。