标签:pac system lse reflect 失败 错误 closed length close
using System; using System.Collections.Generic; using System.Reflection.Metadata; using System.Text; namespace 单链表 { public class Node<T> { public T Data { get; set; } public Node<T> Next { get; set; } public int Last { get; set; } //最后节点的位置 /// <summary> /// 1.构造函数进行初始化 /// </summary> /// <param name="L"></param> public Node() { this.Data = default(T); this.Next = null; this.Last = 0; } /// <summary> /// 2.判断是否为空 /// </summary> /// <param name="l"></param> /// <returns></returns> public bool IsEmpty() { if (this.Last==0) { return true; } else { return false; } } /// <summary> /// 3.求长度 /// </summary> /// <param name="l"></param> /// <returns></returns> public int Length() { return this.Last; } /// <summary> /// 4.插入元素 /// </summary> /// <param name="l"></param> /// <param name="i"></param> /// <param name="item"></param> /// <returns></returns> public void InsertNode(int i, T item) { if (i <= 0) { Console.WriteLine("插入的位置错误"); return ; } Node<T> nBefore = new Node<T>(); Node<T> nCurrent = this; Node<T> s = new Node<T>(); int j = 0; while (nCurrent != null && j < i) { j++; nBefore = nCurrent; nCurrent = nCurrent.Next; } if (nCurrent == null) { s.Data = item; s.Next = null; nBefore.Next = s; } else { s.Data = item; s.Next = nCurrent; nBefore.Next = s; } this.Last++; } /// <summary> /// 5.显示元素 /// </summary> /// <param name="l"></param> public void DisplayNode() { Node<T> n = new Node<T>(); n = this; while (n != null) { Console.WriteLine(n.Data); n = n.Next; } } /// <summary> /// 6.删除i位置的元素 /// </summary> /// <param name="l"></param> /// <param name="i"></param> /// <returns></returns> public void DeleteNode( int i) { if (i < 1 || Length()<i) { Console.WriteLine("删除的位置错误,删除失败"); return; } Node<T> p = this; int j = 0; Node<T> x = new Node<T>(); Node<T> q = new Node<T>(); while (j < i && p != null) { j++;//1,2,6 x = p;//0,1,5 p = p.Next;//1,2,6 q = p.Next;//2,3,7 } if (q == null) { x.Next = q; p = null; } else { x.Next = q; p = null; } this.Last--; } /// <summary> /// 7.获得某个元素e,所在的位置 /// </summary> /// <param name="l"></param> /// <param name="e"></param> /// <returns></returns> public int IndexOf(T e) { int a = 0; Node<T> x = this; while (x != null && x.Data.Equals(e)==false) { x = x.Next; a++; } if (x ==null) { return -1; } return a; } /// <summary> /// 8.获得某个位置的元素 /// </summary> /// <param name=""></param> /// <param name="i"></param> /// <returns></returns> public T GetElement(int i) { Node<T> x = this; T p = default(T); int a = 0; while (x!=null && a<i) { a++; x = x.Next; } if (x ==null) { return p; } else { return x.Data; } } /// <summary> ///9.元素反转 /// </summary> /// <returns></returns> public Node<T> Reverse() { List<T> reverseList = new List<T>(); Node<T> s = new Node<T>(); s.Last = this.Last; Node<T> x = this; for (int i = 0; i < this.Last; i++) { x = x.Next; reverseList.Add(x.Data); } for (int i = 0; i < reverseList.Count; i++) { s.InsertNode(1,reverseList[i]); } return s; } } }
标签:pac system lse reflect 失败 错误 closed length close
原文地址:https://www.cnblogs.com/xifengmo/p/11181608.html