链表
c#
class Link { public Node Head { get; set; } public Link() { Head = new Node("head"); } public Node Reverse() { Node curr = this.Head.Next; Node next = null; Node nextnext = null; if (curr == null || curr.Next == null) { return this.Head; } while (curr.Next != null) { next = curr.Next; nextnext = next.Next; next.Next = this.Head.Next; this.Head.Next = next; curr.Next = nextnext; } return this.Head; } public Node RecursionReverse(Node n) { if (n.Next == null) return n; Node head = RecursionReverse(n.Next); n.Next.Next = n; n.Next = null; return head; } public void Display() { Node curr = this.Head; StringBuilder sb = new StringBuilder(); while (curr != null) { sb.Append(curr.Data+" "); curr = curr.Next; } Console.WriteLine(sb.ToString()); } public void ReverseDisplay(Node n) { if (n!= null) { ReverseDisplay(n.Next); Console.WriteLine(n.Data); } } public void Insert(Node n) { Node curr = this.Head.Next; if (curr == null) { this.Head.Next = n; } else { while (curr.Next != null) { curr = curr.Next; } curr.Next = n; } } public void Insert(Node n, string after) { Node curr = this.Head.Next; if (curr == null) { this.Head.Next = n; } else { if (curr.Next == null) { curr.Next = n; } else { while (curr.Next != null && curr.Next.Data != after) { curr = curr.Next; } if (curr.Next == null) { curr.Next = n; } else { n.Next = curr.Next.Next; curr.Next.Next = n; } } } } public Node Find(string data) { Node curr = this.Head.Next; while (curr != null && curr.Data != data) { curr = curr.Next; } return curr; } } class Node { public Node Next { get; set; } public string Data { get; set; } public Node(string data) { this.Next = null; this.Data = data; } }

浙公网安备 33010602011771号