欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > c# >内容正文

c#

c#——自定义泛型链表demo -凯发ag旗舰厅登录网址下载

发布时间:2024/10/5 c# 27 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 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);}} }

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的c#——自定义泛型链表demo的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图