日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#——自定义泛型链表DEMO

發布時間:2024/10/5 C# 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#——自定义泛型链表DEMO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

?已定義如下一個泛型類和泛型接口,請創建一個泛型的MyLinkedList類,表示一個單向鏈表,滿足指定接口和功能。

1)泛型類,代表鏈表中的節點

? ? public class Node<T> {public T Value { get; set; }public Node<T> Next { get; set; }public Node(T value){Value = value;Next = null;} }

2)泛型接口,定義了列表上可執行的操作

? ? public interface IMyList<T> {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<T> : IMyList<T> {private Node<T> head; }

4)最終,使用下述Main方法進行測試。

public static void Main() {MyLinkedList<int> lst = new MyLinkedList<int>();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<int> list = new MyLinkedList<int>(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<T>{public T Value { get; set; }public Node<T> Next { get; set; }public Node(T value){Value = value;Next = null;}}//2)泛型接口,定義了列表上可執行的操作public interface IMyList<T>{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<T> : IMyList<T>{private Node<T> 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<T> temp = head;while (temp!= null){count++;temp = temp.Next;}}return count;} }public void AddToHead(T value){var newNode = new Node<T>(value);if (head == null){head = newNode;}else{newNode.Next = head;head = newNode;}}public void AddToTail(T value){var newNode = new Node<T>(value);if (head == null){head = newNode;}else{Node<T> temp = head;while (temp.Next != null) {temp = temp.Next;}temp.Next = newNode;}}public bool Contains(T value){if (head != null) {Node<T> 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<T> 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<int> lst = new MyLinkedList<int>();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<int> list = new MyLinkedList<int>(1, 8, 9, 43, 22);Console.WriteLine(list);}} }

運行結果

總結

以上是生活随笔為你收集整理的C#——自定义泛型链表DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。