做网站私活,做网站大作业的心得体会,重庆市建筑协会信息网,wordpress开启cdn目录
1.定义一个泛型节点类并自动属性
2.定义链表类#xff0c;并实现Append、Print、MoveFirst、 Insert
3.Main方法 1.定义一个泛型节点类并自动属性
/// summary
/// 定义泛型节点类
/// /summary
/// typeparam nameT泛型运算符并实现Append、Print、MoveFirst、 Insert
3.Main方法 1.定义一个泛型节点类并自动属性
/// summary
/// 定义泛型节点类
/// /summary
/// typeparam nameT泛型运算符/typeparam
/// param namevalue泛型参数/param
public class ListNodeT(T value)
{public T Object { get; set; } value;public ListNodeT? Next { get; set; }public ListNodeT? Previous { get; set; }
}
2.定义链表类并实现Append、Print、MoveFirst、 Insert
/// summary
/// 定义链表类
/// /summary
public class LinkedList
{private ListNodeint? _head;private ListNodeint? _tail;private ListNodeint? _current;public ListNodeint? Current { get _current; set _current value; }/// summary/// 追加节点到Append方法/// /summary/// param namevalue/parampublic void Append(int value){var newNode new ListNodeint(value);if (_head null){_head newNode;_tail newNode;}else{_tail!.Next newNode;newNode.Previous _tail;_tail newNode;}}/// summary/// 输出各节点/// /summarypublic void Print(){var current _head;while (current ! null){Console.WriteLine(current.Object);current current.Next;}}/// summary///移动指针到链表头/// /summarypublic void MoveFirst(){if (_head ! null){_current _head;}}/// summary/// 在当前节点后面插入新数据/// /summary/// param namevalue待插入的数据/parampublic void Insert(int value){// 创建一个新的节点var newNode new ListNodeint(value);// 如果链表为空将新节点设置为头节点if (_head null){_head newNode;_current newNode;return;}// 找到当前节点var current _current;if (current null){//current _head;_current _head;while (_current.Next ! null){_current _current.Next;}current _current;}// 在当前位置插入新节点newNode.Next current.Next;newNode.Previous current;current.Next newNode;_current newNode;}
3.Main方法 class Program{static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);var linkedList new LinkedList();linkedList.Append(5);linkedList.Append(2);linkedList.Append(8);linkedList.Append(1);linkedList.Print();Console.WriteLine(*初始化数据*);linkedList.MoveFirst();linkedList.Insert(3);linkedList.Print();Console.WriteLine(*头结点后插入3*);}} 运行结果
//运行结果
/*
5
2
8
1
*初始化数据*
5
3
2
8
1
*头结点后插入3**/